1. 25 Aug, 2003 1 commit
    • Owen Taylor's avatar
      Send the focus on to the parent when there was no focus widget before and · eb410261
      Owen Taylor authored
      Wed Aug 20 21:26:49 2003  Owen Taylor  <otaylor@redhat.com>
      
              * gtk/gtkplug.c (gtk_plug_focus): Send the focus on
              to the parent when there was no focus widget before
              and no focus widget after - that is, when there are
              no focusable widgets. (#108678, help tracking it
              down from Padraig O'Briain, Federico Mena Quintero, )
      
              * gtk/gtkxembed.[ch]: Move various shared utilities
              for the XEMBED protocol eused by GtkPlug and GtkSocket
              here.
      
              * gtk/gtkxembed.[ch] gtkplug.c gtksocket.c: Implement
              a flag bit that is sent with focus mesages to indicate
              that the focus has wrapped around on the toplevel;
              use this bit to catch infinite loops when there is no
              focusable widget at ll in the entire toplevel.
      
              * tests/testsocket.c (child_read_watch): Remove an
              extraneous unref.
      
              * gtk/gtkplug.c gtk/gtksocket.c gtk/gtkxembed.h:
              Up XEMBED protocol version to 1, add logic for
              sending the right version in XEMBED_EMBEDDED_NOTIFY.
      
              * gtk/gtksocket.c (gtk_socket_add_window): Send
              the embedder window in the XEMBED_EMBEDDED_NOTIFY
              as the spec requires.
      eb410261
  2. 24 Feb, 2002 1 commit
    • Owen Taylor's avatar
      Implement accelerator propagation using a custom XEMBED_GTK_KEY_GRAB · 6a802b24
      Owen Taylor authored
      Sat Feb 23 20:33:29 2002  Owen Taylor  <otaylor@redhat.com>
      
              * gtk/gtkplug.[ch] gtk/gtksocket.[ch] gtk/xembed.h: Implement
              accelerator propagation using a custom XEMBED_GTK_KEY_GRAB
              XEMBED_GTK_KEY_UNGRAB pair of messages.
      
              * gtk/gtkwindow.[ch]: private export _gtk_window_keys_foreach().
      
              * gtk/gtkplug.c (gtk_plug_set_is_child): Clear focus and default
              widgets.
      6a802b24
  3. 03 Jul, 2001 1 commit
    • Owen Taylor's avatar
      For XEMBED embedding add a _XEMBED_INFO property to the client with · f409cd9b
      Owen Taylor authored
      Mon Jul  2 16:53:25 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/xembed.h gtk/gtkplug.c gtk/gtksocket.c: For
      	XEMBED embedding add a _XEMBED_INFO property to the
      	client with version number and a "mapped" flags.
      	Use the mapped flag instead of the racy MapRequestEvent
      
              * gtk/gtksocket.c: Clean up the gtk_socket_steal()
      	code to reliably set things (when the child is a passive
      	embedder participating in the XEMBED protocol) intead
      	of just being a hack for embedding non-participating
      	programs. Fix various bugs and race conditions.
      
      	* gtk/gtksocket.[ch] gtk/gtkplug.[ch]: Make local embedding
      	work by simply making the GtkSocket the gtk parent
      	of the GtkPlug. Set a flag in this case and make
      	the GtkPlug work like a normal container by overriding
      	methods such as check_resize and "chaining past" GtkWindow
      	to GtkBin.
      
       	* gtk/gtkentry.c (gtk_entry_real_activate)
      	  gtk/gtkmain.c (gtk_propagate_event):
       	Eliminate use of gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW).
      
      	* gtk/gtkwidget.c (gtk_widget_get_toplevel,
      	gtk_widget_get_ancestor):
      	Explain	why gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)
      	might not give the expected result and recommend
      	an alternative.
      
      	* tests/testsocket.c tests/testsocket_child.c
      	tests/testsocket_common.c tests/Makefile.am: Extended
      	to test different type of adding plugs to sockets
      	(local,active,passive),	and to test mapping/unmapping
      	the plug.
      
       	* gdk/gdkwindow.c (_gdk_window_destroy_hierarchy): Don't
       	mark the window as destroyed until after we
       	called _gdk_windowing_window_destroy().
      	(_gdk_windowing_window_destroy() may use GDK functions
      	on the window.)
      
       	* gdk/x11/gdkinput.c: Remove the check for finalization -
       	devices can be finalized under some circumnstances.
      
       	* gdk/x11/gdkinput-x11.c (gdk_input_device_new): Fix
       	small problem with GDK_TYPE_DEVICE.
      f409cd9b
  4. 19 Apr, 2001 1 commit
    • Owen Taylor's avatar
      File containing #defines for XEMBED protocol. · bf660df9
      Owen Taylor authored
      Thu Apr 19 16:11:07 2001  Owen Taylor  <otaylor@redhat.com>
      
      	* gtk/Makefile.am xembed.h: File containing #defines
      	for XEMBED protocol.
      
      	* gtk/gtkplug.[ch] gtk/gtksocket.[ch]:
      
      	- Change protocol from old plug/socket specific protocol
      	  to XEMBED draft
      	- Various fixes to work with GTK+-2.0
      
      	Still quite a bit of work to do here to handle initiation
      	from the socket side (as specified by XEMBED), to handle
      	the more advanced features of XEMBED, and to figure out
      	a good way to handle same-app embedding with less overhead
      	than using full XEMBED.
      bf660df9