Set also the pointer button bits. (#136636, Dave Neary)

2004-03-10  Tor Lillqvist  <tml@iki.fi>

	* 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)
This commit is contained in:
Tor Lillqvist
2004-03-10 22:20:36 +00:00
committed by Tor Lillqvist
parent ebd1f209e2
commit 6e5d959730
7 changed files with 99 additions and 2 deletions

View File

@ -1,3 +1,15 @@
2004-03-10 Tor Lillqvist <tml@iki.fi>
* 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 <maclas@gmx.de>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the

View File

@ -1,3 +1,15 @@
2004-03-10 Tor Lillqvist <tml@iki.fi>
* 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 <maclas@gmx.de>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the

View File

@ -1,3 +1,15 @@
2004-03-10 Tor Lillqvist <tml@iki.fi>
* 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 <maclas@gmx.de>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the

View File

@ -1,3 +1,15 @@
2004-03-10 Tor Lillqvist <tml@iki.fi>
* 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 <maclas@gmx.de>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the

View File

@ -1,3 +1,15 @@
2004-03-10 Tor Lillqvist <tml@iki.fi>
* 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 <maclas@gmx.de>
* gtk/gtkcellview.c (gtk_cell_view_cell_layout_clear): Keep the

View File

@ -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.

View File

@ -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;