diff options
author | Owen Taylor <otaylor@redhat.com> | 2003-08-25 21:46:57 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2003-08-25 21:46:57 +0000 |
commit | eb41026147d0966a366420bb93f7e0fcefb73536 (patch) | |
tree | 18b29a08a3e5fe61d3e5e3f0c767ee2aecc79839 /gtk/xembed.h | |
parent | 9eb2d7c261dbbfaa3f7248efb88970eb02aa210a (diff) | |
download | gdk-pixbuf-eb41026147d0966a366420bb93f7e0fcefb73536.tar.gz |
Send the focus on to the parent when there was no focus widget before and
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.
Diffstat (limited to 'gtk/xembed.h')
-rw-r--r-- | gtk/xembed.h | 39 |
1 files changed, 22 insertions, 17 deletions
diff --git a/gtk/xembed.h b/gtk/xembed.h index 14d55e604..106392951 100644 --- a/gtk/xembed.h +++ b/gtk/xembed.h @@ -1,26 +1,31 @@ /* XEMBED messages */ -#define XEMBED_EMBEDDED_NOTIFY 0 -#define XEMBED_WINDOW_ACTIVATE 1 -#define XEMBED_WINDOW_DEACTIVATE 2 -#define XEMBED_REQUEST_FOCUS 3 -#define XEMBED_FOCUS_IN 4 -#define XEMBED_FOCUS_OUT 5 -#define XEMBED_FOCUS_NEXT 6 -#define XEMBED_FOCUS_PREV 7 -#define XEMBED_GRAB_KEY 8 -#define XEMBED_UNGRAB_KEY 9 -#define XEMBED_MODALITY_ON 10 -#define XEMBED_MODALITY_OFF 11 +typedef enum { + XEMBED_EMBEDDED_NOTIFY = 0, + XEMBED_WINDOW_ACTIVATE = 1, + XEMBED_WINDOW_DEACTIVATE = 2, + XEMBED_REQUEST_FOCUS = 3, + XEMBED_FOCUS_IN = 4, + XEMBED_FOCUS_OUT = 5, + XEMBED_FOCUS_NEXT = 6, + XEMBED_FOCUS_PREV = 7, + XEMBED_GRAB_KEY = 8, + XEMBED_UNGRAB_KEY = 9, + XEMBED_MODALITY_ON = 10, + XEMBED_MODALITY_OFF = 11, /* Non standard messages*/ -#define XEMBED_GTK_GRAB_KEY 108 -#define XEMBED_GTK_UNGRAB_KEY 109 + XEMBED_GTK_GRAB_KEY = 108, + XEMBED_GTK_UNGRAB_KEY = 109 +} XEmbedMessageType; /* Details for XEMBED_FOCUS_IN: */ -#define XEMBED_FOCUS_CURRENT 0 -#define XEMBED_FOCUS_FIRST 1 -#define XEMBED_FOCUS_LAST 2 +#define XEMBED_FOCUS_CURRENT 0 +#define XEMBED_FOCUS_FIRST 1 +#define XEMBED_FOCUS_LAST 2 +/* Flags for XEMBED_FOCUS_IN, XEMBED_FOCUS_NEXT, XEMBED_FOCUS_PREV */ +#define XEMBED_FOCUS_WRAPAROUND (1 << 0) /* Flags for _XEMBED_INFO */ #define XEMBED_MAPPED (1 << 0) + |