mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-18 17:20:09 +00:00
eb41026147
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.
32 lines
976 B
C
32 lines
976 B
C
/* XEMBED messages */
|
|
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*/
|
|
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
|
|
|
|
/* 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)
|
|
|