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/gtkxembed.h | |
parent | 9eb2d7c261dbbfaa3f7248efb88970eb02aa210a (diff) | |
download | gtk+-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/gtkxembed.h')
-rw-r--r-- | gtk/gtkxembed.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gtk/gtkxembed.h b/gtk/gtkxembed.h new file mode 100644 index 0000000000..d18e81a121 --- /dev/null +++ b/gtk/gtkxembed.h @@ -0,0 +1,48 @@ +/* GTK - The GIMP Toolkit + * gtkxembed.c: Utilities for the XEMBED protocol + * Copyright (C) 2003, Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GTK_XEMBED_H__ +#define __GTK_XEMBED_H__ + +#include "xembed.h" +#include "x11/gdkx.h" + +G_BEGIN_DECLS + +/* Latest version we implement */ +#define GTK_XEMBED_PROTOCOL_VERSION 1 + +void _gtk_xembed_send_message (GdkWindow *recipient, + XEmbedMessageType message, + glong detail, + glong data1, + glong data2); +void _gtk_xembed_send_focus_message (GdkWindow *recipient, + XEmbedMessageType message, + glong detail); + +void _gtk_xembed_push_message (XEvent *xevent); +void _gtk_xembed_pop_message (void); +void _gtk_xembed_set_focus_wrapped (void); +gboolean _gtk_xembed_get_focus_wrapped (void); + +G_END_DECLS + +#endif /* __GTK_XEMBED_H__ */ |