diff options
author | Elijah Newren <newren@math.utah.edu> | 2004-05-06 02:57:01 +0000 |
---|---|---|
committer | Elijah Newren <newren@src.gnome.org> | 2004-05-06 02:57:01 +0000 |
commit | 5502f77eafdc207046d3cd14a47135f94ded827a (patch) | |
tree | 4fdcf0728c641508de8dae6a0623a52a5137772f /gdk/win32 | |
parent | 4ec2a42a4ee3c3a3b405eefa85f713f612369de9 (diff) | |
download | gtk+-5502f77eafdc207046d3cd14a47135f94ded827a.tar.gz |
Changes to support do-not-focus-on-map hint in conjunction with
2004-05-05 Elijah Newren <newren@math.utah.edu>
Changes to support do-not-focus-on-map hint in conjunction with
_NET_WM_USER_TIME (#115650):
* gdk/gdkwindow.h (struct _GdkWindowObject): Add a new boolean
field focus_on_map
* gdk/gdkwindow.h (gdk_window_set_accept_focus): New function to
set it.
* gtk/gtkwindow.[hc]: Add a boolean property "focus_on_map"
and gtk_window_get_focus_on_map() and gtk_window_set_focus_on_map().
* gdk/win32/gdkwindow-win32.c (gdk_window_new):
* gdk/linux-fb/gdkwindow-fb.c (gdk_window_new):
* gdk/x11/gdkwindow-x11.c (gdk_window_new):
Initialize the focus_on_map field to TRUE.
* gdk/win32/gdkwindow-win32.c (gdk_window_set_focus_on_map):
* gdk/linux-fb/gdkwindow-fb.c (gdk_window_set_focus_on_map):
* gdk/x11/gdkwindow-x11.c (gdk_window_set_focus_on_map):
* gdk/x11/gdkwindow-x11.c (setup_toplevel_window):
Implementations for the various backends. The Win32 and linux-fb
implementations set the focus_on_map field, but don't use it yet
to actually implement noinput windows. The X implementation sets
_NET_WM_USER_TIME to 0 if focus_on_map is FALSE (see the EWMH).
* gdk/x11/gdkwindow-x11.h:
* gdk/x11/gdkevents-x11.c (set_user_time):
* gdk/x11/gdkinput-x11.c (_gdk_input_common_other_event):
* gdk/x11/gdkwindow-x11.c (gdk_x11_window_set_user_time):
s/_gdk_x11_window_set_user_time/gdk_x11_window_set_user_time/,
since we want that function to be part of the public API.
Diffstat (limited to 'gdk/win32')
-rw-r--r-- | gdk/win32/gdkwindow-win32.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index ae67429e6c..79813cd67c 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -508,6 +508,7 @@ gdk_window_new (GdkWindow *parent, private->parent = (GdkWindowObject *)parent; private->accept_focus = TRUE; + private->focus_on_map = TRUE; if (attributes_mask & GDK_WA_X) private->x = attributes->x; @@ -2228,6 +2229,22 @@ gdk_window_set_accept_focus (GdkWindow *window, private->accept_focus = accept_focus; } +void +gdk_window_set_focus_on_map (GdkWindow *window, + gboolean focus_on_map) +{ + GdkWindowObject *private; + g_return_if_fail (window != NULL); + g_return_if_fail (GDK_IS_WINDOW (window)); + + private = (GdkWindowObject *)window; + + focus_on_map = focus_on_map != FALSE; + + if (private->focus_on_map != focus_on_map) + private->focus_on_map = focus_on_map; +} + static HICON pixbuf_to_hicon_alpha_winxp (GdkWindow *window, GdkPixbuf *pixbuf) |