From 6e5d95973013bb33a30a31cec9134e87977b5954 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Wed, 10 Mar 2004 22:20:36 +0000 Subject: [PATCH] Set also the pointer button bits. (#136636, Dave Neary) 2004-03-10 Tor Lillqvist * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also the pointer button bits. (#136636, Dave Neary) * gdk/win32/gdkwindow-win32.c (show_window_internal): Show transparent (input only) windows using SetWindowPos(). (#132331, John Ehresman) (gdk_window_set_type_hint): For splash screens, remove the resize handles, menu, and minimize/maximize/close buttons. (#132896) --- ChangeLog | 12 ++++++++++++ ChangeLog.pre-2-10 | 12 ++++++++++++ ChangeLog.pre-2-4 | 12 ++++++++++++ ChangeLog.pre-2-6 | 12 ++++++++++++ ChangeLog.pre-2-8 | 12 ++++++++++++ gdk/win32/gdkevents-win32.c | 16 ++++++++++++++++ gdk/win32/gdkwindow-win32.c | 25 +++++++++++++++++++++++-- 7 files changed, 99 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1f9639a0a2..819ee3fcd8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2004-03-10 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also + the pointer button bits. (#136636, Dave Neary) + + * gdk/win32/gdkwindow-win32.c (show_window_internal): Show + transparent (input only) windows using SetWindowPos(). (#132331, + John Ehresman) + + (gdk_window_set_type_hint): For splash screens, remove the resize + handles, menu, and minimize/maximize/close buttons. (#132896) + Wed Mar 10 22:30:23 2004 Matthias Clasen * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 1f9639a0a2..819ee3fcd8 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,15 @@ +2004-03-10 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also + the pointer button bits. (#136636, Dave Neary) + + * gdk/win32/gdkwindow-win32.c (show_window_internal): Show + transparent (input only) windows using SetWindowPos(). (#132331, + John Ehresman) + + (gdk_window_set_type_hint): For splash screens, remove the resize + handles, menu, and minimize/maximize/close buttons. (#132896) + Wed Mar 10 22:30:23 2004 Matthias Clasen * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 1f9639a0a2..819ee3fcd8 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,15 @@ +2004-03-10 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also + the pointer button bits. (#136636, Dave Neary) + + * gdk/win32/gdkwindow-win32.c (show_window_internal): Show + transparent (input only) windows using SetWindowPos(). (#132331, + John Ehresman) + + (gdk_window_set_type_hint): For splash screens, remove the resize + handles, menu, and minimize/maximize/close buttons. (#132896) + Wed Mar 10 22:30:23 2004 Matthias Clasen * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 1f9639a0a2..819ee3fcd8 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,15 @@ +2004-03-10 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also + the pointer button bits. (#136636, Dave Neary) + + * gdk/win32/gdkwindow-win32.c (show_window_internal): Show + transparent (input only) windows using SetWindowPos(). (#132331, + John Ehresman) + + (gdk_window_set_type_hint): For splash screens, remove the resize + handles, menu, and minimize/maximize/close buttons. (#132896) + Wed Mar 10 22:30:23 2004 Matthias Clasen * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 1f9639a0a2..819ee3fcd8 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,15 @@ +2004-03-10 Tor Lillqvist + + * gdk/win32/gdkevents-win32.c (build_key_event_state): Set also + the pointer button bits. (#136636, Dave Neary) + + * gdk/win32/gdkwindow-win32.c (show_window_internal): Show + transparent (input only) windows using SetWindowPos(). (#132331, + John Ehresman) + + (gdk_window_set_type_hint): For splash screens, remove the resize + handles, menu, and minimize/maximize/close buttons. (#132896) + Wed Mar 10 22:30:23 2004 Matthias Clasen * gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 1302db8ef2..d8290856cc 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -79,6 +79,11 @@ #define XBUTTON2 2 #endif +#ifndef VK_XBUTTON1 +#define VK_XBUTTON1 5 +#define VK_XBUTTON2 6 +#endif + #ifndef MK_XBUTTON1 #define MK_XBUTTON1 32 #define MK_XBUTTON2 64 @@ -827,6 +832,17 @@ build_key_event_state (GdkEvent *event, if (key_state[VK_CAPITAL] & 0x01) event->key.state |= GDK_LOCK_MASK; + if (key_state[VK_LBUTTON] & 0x80) + event->key.state |= GDK_BUTTON1_MASK; + if (key_state[VK_MBUTTON] & 0x80) + event->key.state |= GDK_BUTTON2_MASK; + if (key_state[VK_RBUTTON] & 0x80) + event->key.state |= GDK_BUTTON3_MASK; + if (key_state[VK_XBUTTON1] & 0x80) + event->key.state |= GDK_BUTTON4_MASK; + if (key_state[VK_XBUTTON2] & 0x80) + event->key.state |= GDK_BUTTON5_MASK; + /* Win9x doesn't distinguish between left and right Control and Alt * in the keyboard state as returned by GetKeyboardState(), so we * have to punt, and accept either Control + either Alt to be AltGr. diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c index a87136b33e..424a543313 100644 --- a/gdk/win32/gdkwindow-win32.c +++ b/gdk/win32/gdkwindow-win32.c @@ -999,6 +999,21 @@ show_window_internal (GdkWindow *window, GDK_WINDOW_STATE_WITHDRAWN, 0); + /* Use SetWindowPos to show transparent windows so automatic redraws + * in other windows can be suppressed. + */ + if (GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE) & WS_EX_TRANSPARENT) + { + UINT flags = SWP_SHOWWINDOW | SWP_NOREDRAW | SWP_NOMOVE | SWP_NOSIZE; + if (!raise) + flags |= SWP_NOZORDER; + if (!raise || GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP) + flags |= SWP_NOACTIVATE; + + SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOP, 0, 0, 0, 0, flags); + return; + } + old_active_window = GetActiveWindow (); if (private->state & (GDK_WINDOW_STATE_BELOW | GDK_WINDOW_STATE_ABOVE)) @@ -1078,8 +1093,8 @@ gdk_window_hide (GdkWindow *window) if (GetWindowLong (GDK_WINDOW_HWND (window), GWL_EXSTYLE) & WS_EX_TRANSPARENT) { - SetWindowPos(GDK_WINDOW_HWND (window), HWND_BOTTOM, 0, 0, 0, 0, - SWP_HIDEWINDOW | SWP_NOREDRAW | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE); + SetWindowPos (GDK_WINDOW_HWND (window), HWND_BOTTOM, 0, 0, 0, 0, + SWP_HIDEWINDOW | SWP_NOREDRAW | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE); } else { @@ -3114,6 +3129,12 @@ gdk_window_set_type_hint (GdkWindow *window, case GDK_WINDOW_TYPE_HINT_UTILITY: break; case GDK_WINDOW_TYPE_HINT_SPLASHSCREEN: + gdk_window_set_decorations (window, + GDK_DECOR_ALL | + GDK_DECOR_RESIZEH | + GDK_DECOR_MENU | + GDK_DECOR_MINIMIZE | + GDK_DECOR_MAXIMIZE); break; case GDK_WINDOW_TYPE_HINT_DOCK: break;