Commit Graph

21059 Commits

Author SHA1 Message Date
Alexander Larsson
3cd9920e14 win32: Ensure newly mapped toplevels are inside the workarea
This is what e.g. metacity does, and its needed to e.g. get the inital
position of the gimp dock window right.
2011-11-02 14:30:23 +01:00
Alexander Larsson
f7438ce4e4 win32: Fix placement at initial position
Positioning windows at 0,0 post creation failed, because it
was mapped with CW_USEDFAULT, but private->x/y still said 0,
so moving it to 0,0 did nothing. We now always position the
window at the right place, even when not mapped, but we
create it at CW_USEDEFAULT initially and store that position
before moving it to the right place.

This fixes the window sizing test in testgtk and the inital
position for the gimp toolbar.
2011-11-02 12:15:53 +01:00
Alexander Larsson
1a624ea818 win32: Fix synaptics trackpad issues
The synaptics trackpad driver has some weird behaviour on scroll.
It pops up a window over the mouse pointer (looking like a scrollbar).
This has two problems:
* We get extra enter/leave events for the trackpad window
* We get back the trackpad window when we look for the window
  under the mouse to deliver the mousewheel message.

So, we add some trackpad specific hacks to avoid this (sigh) based
on the trackpad window window class.

This fixes bug #542777 and was partially based on a patch there
from Peter Clifton.
2011-11-01 22:25:26 +01:00
Egon Elbre
718af6870f fix: win32 tilt axis range 2011-11-01 21:25:14 +01:00
Alexander Larsson
c88ccc632a Make print-editor test use double buffering in preview
This makes preview work on win32
2011-11-01 21:07:14 +01:00
Alexander Larsson
49d017dcb9 win32: Default to MS-Windows theme
It really makes little sense to not look like windows apps on windows.
If you really want you can change this via a .gtkrc-2.0 file
2011-11-01 14:23:44 +01:00
Alexander Larsson
8f6f64fe10 win32: Make WINTAB support work
Lots of rework to make input events work in the csw world
2011-11-01 12:38:15 +01:00
Martin Renold
2cd09a6653 win32: fix invalid cast 2011-10-28 11:16:57 +02:00
Alexander Larsson
2090e37ffb win32: Fix ms-windows theme to not create native subwindows
GDK_WINDOW_HWND() calls from outside gdk calls ensure_native_window,
but we really want the HWND of the impl window, so call
the new gdk_win32_window_get_impl_hwnd() instead.
2011-10-28 11:06:59 +02:00
Alexander Larsson
26b97f63c9 win32: Add gdk_win32_window_get_impl_hwnd
This is needed to fix the ms-windows theme not to create
native windows for all child windows.
2011-10-28 11:05:53 +02:00
Morten Welinder
afce8c7341 win32: Actually check for IPrintDialogCallback in configure 2011-10-28 09:10:40 +02:00
Alexander Larsson
4b5b28b64f win32: Fix modal_hint handling
Modal hints are not really a stack. All windows that are modal
are allowed to get input, not just the top one.

This fixes bug #604156
2011-10-27 22:13:54 +02:00
Alexander Larsson
6d1b818560 win32: Don't use API_CALL for SetWindowLong
This can return 0 without it being an error.
Should fix the last issue with bug #142874
2011-10-27 21:12:32 +02:00
Alexander Larsson
47095f97d2 win32: Make flush/sync work like in X
gdk_flush() should gdk_display_sync() on all open displays.

Both for display_flush and display_sync it seems useful to call
GdiFlush, but we don't have anything extra to do for display_sync,
as there is no inherent roundtrip on win32.

This should close bug #84314
2011-10-27 21:12:31 +02:00
Alexander Larsson
8588944cb9 win32: Add custom placements for some window types
Windows with transients: center on parent
Splash screens: center on monitor
Also properly ignores initial moves of unmapped
windows that are not override redirect or HINT_POS

Fixes bugs #324254 and #612359
2011-10-27 21:12:24 +02:00
Alexander Larsson
ac00340d4c win32: More robust way to ensure we get a configure event after move/resize
There were still cases where we didn't get a WINDOWPOSCHANGED after
a SetWindowPos() call, like e.g. with a larger minimum size than
the set size (bug #574935)

So, we revert the previous fix and now just always manually emit
a configure notify after the move_resize call. Also, we inhibit
the WINDOWPOSCHANGED configure event during the move_resize operation
to avoid multiple Configures.
2011-10-27 10:42:07 +02:00
Alexander Larsson
f44c6d66bf win32: Ensure we always send a configure event when changing size/pos
There are some cases where we don't get a WINDOWPOSCHANGE such that
we generate a configure event, even if we called gdk_window_move_resize()
or similar. For instance:
* The window is fullscreen
* The window is maximized
* The specified pos/size is the same as the current one

However, as per X11 ConfigureNotify semantics we *always* want one, or
we could run into issue like e.g. bug #537296 where we're waiting for
the CONFIGURE to call gdk_window_thaw_toplevel_updates_libgtk_only().
2011-10-26 21:46:19 +02:00
Alexander Larsson
4f9e1dd414 win32: By default, allow windows larger than the screen 2011-10-26 21:44:49 +02:00
Alexander Larsson
8c9963f9c3 win32: Fix size or style changes during fullscreen
When we're fullscreen we should update the cached hints, and we
should not apply the normal hints to the style.

This fixes bug #516822
2011-10-26 20:45:00 +02:00
Alexander Larsson
9c575532fd win32: Use WM_NCDESTROY instead of WM_DESTROY
WM_NCDESTROY gets called after children are destroyed, which is
the semantics DestroyNotify has in X11.
2011-10-26 12:45:09 +02:00
Alexander Larsson
9da34d0ec5 win32: Don't remove the window from the handle table on destroy
We always get the WM_DESTROY message anyway, and we remove it there.
Bug #336416 even claims this could be a leak if the WM_DESTROY
message was not seen before the DestroyWindow call returned, as
the WM_DESTROY message could not be handled later without the
window in the handle table. I'm not sure this can happen, but we
might as well remove it.
2011-10-26 12:45:06 +02:00
Alexander Larsson
0c0c741885 win32: don't input_window_destroy twice
The common code already calls input_window_destroy
2011-10-26 12:45:04 +02:00
Alexander Larsson
7b425eead7 win32: Make set_keep_above work also for non-mapped windows
This fixes bug #171456
2011-10-26 12:44:54 +02:00
Alexander Larsson
d463030660 win32: Send window-state-changes before configure events
This is requires to that the state of the window is right when
you get the configure event (and to match what X does).

Fixes bug #169811
2011-10-26 10:26:38 +02:00
Alexander Larsson
cd7fa0385c win32: Send initial configure
We need to send a configure event when a window is shown.
2011-10-25 16:41:52 +02:00
Alexander Larsson
5bd8485a3d win32: Ignore client requested window move/size during SIZEMOVE
This will just be fighting the user like in e.g.
https://bugzilla.gnome.org/show_bug.cgi?id=64428
2011-10-25 16:13:47 +02:00
Alexander Larsson
c87114cb14 win32: Remove most special casing of WINPOSCHANGED during modal ops
There is no particular reason to special case this, we want to handle all
sort of normal events. The only special thing we keep is that
as an optimization we pump the message loop extra during a WINPOSCHANGED
in a modal operation as that will cause us to repaint faster.

Also, bump the arbitrary number of mainloop iterations for the timer.
I don't see why we need it at all, but at least doing more than one
iteration if needed should be nice.
2011-10-25 15:36:13 +02:00
Alexander Larsson
b0d108a5c4 win32: Fix missed resize exit message
When you start a window resize or move via the window menu and
don't actually change anything we're not getting an exitsizemove.
In order to work around this we also look for WM_CAPTURECHANGED.
2011-10-25 15:34:22 +02:00
Alexander Larsson
2dfd498fd8 win32: Handle all window changes in WINDOWPOSCHANGED
This moves all the code from WM_SIZE, WM_MOVE, and WM_SHOWWINDOW into
one place, cleans up the code and makes sure we only send a single
configure event even if both size and position changes.
2011-10-25 14:38:16 +02:00
Alexander Larsson
e2d3bdf68c win32: Fix up window_show
We don't pass in raise anymore, but already_mapped.
Also, already_mapped must be used rather than MAPPED, as we already
synthesize the MAPPED in the generic code (and thus we don't have
to synthesize it again).
2011-10-25 14:26:22 +02:00
Jerome Lambourg
b85176789b win32: fix themed notebook tab renderering
The ms-windows engine incorrectly displays notebooks: the
tabs are not attached to the body, and look more like
regular buttons than actual notebook tabs. Also, the frame
around the notebooks is also incorrectly drawn.

https://bugzilla.gnome.org/show_bug.cgi?id=650300
2011-10-21 14:45:59 +02:00
Dieter Verfaillie
97a0234370 win32: correctly handle difference between tab_pos and gap_side when drawing an extension (notebook tab) 2011-10-21 14:45:54 +02:00
Dieter Verfaillie
900f39d595 win32: add TODO mentioning GtkButton::child-displacement-x & y should be 0 when XP theme is active 2011-10-21 14:45:50 +02:00
Arnaud Charlet
628093a4e1 win32: fix typo in msw_style.c
https://bugzilla.gnome.org/show_bug.cgi?id=647460
2011-10-21 14:45:42 +02:00
Dieter Verfaillie
12507a7cc2 win32: Call GetQueueStatus instead of PeekMessage PM_NOREMOVE
Calling PeekMessage can cause reentrant calls into the window procedure
for sent (as opposed to posted) messages, so its not safe to call
when we're not expecting reentrancy. Instead we call GetQueueStatus
when we're just looking for availible messages.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=552041
2011-10-21 11:38:31 +02:00
Chun-wei Fan
67c410d51b Update VS 2010 property sheet
Correct the DefDir property...
2011-10-20 16:59:36 +08:00
Alexander Larsson
039f5fdfb5 Better crossing events and grab destination reporting
We new report to the right window during !owner_event grabs, and
we send proper enter and leave events.
2011-10-19 22:41:14 +02:00
Alexander Larsson
bfe27c0aef win32: Record the native event mask in use 2011-10-19 22:41:13 +02:00
Alexander Larsson
c6cab74920 Use right native_window for implicit grabs
The native grab really is on the window that got the button press event.
2011-10-19 22:41:12 +02:00
Alexander Larsson
b34ff7b3ea in window_at_pointer, ensure that we handle non-client areas correctly
We should not return a window if the pointer is in the non-client area,
like the titlebar.
2011-10-19 22:41:10 +02:00
Alexander Larsson
a4288a88f4 Handle implicit grabs 2011-10-19 22:41:08 +02:00
Matthias Clasen
71e187b315 Post release version bump 2011-10-17 19:05:50 -04:00
Matthias Clasen
7299d70760 Fix make check 2011-10-17 18:42:12 -04:00
Matthias Clasen
6d7fe30698 Updates 2011-10-17 17:59:05 -04:00
Matthias Clasen
3a1ad288a6 Improve the deprecation note for GDK_DISPLAY
As pointed out in bug 653847.
2011-10-17 13:14:18 -04:00
John Ralls
c34c302308 Bug 658772: Directory paths for resource directories are hard coded.
Corrected formatting to match coding standards; introduced local statics
to prevent leaking returned strings.
2011-10-15 12:49:12 -07:00
Javier Jardón
fb99ca1979 gtkentrycompletion: check return value because It can be non-UTF8
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=624270
2011-10-13 14:01:08 +01:00
Alex Corrado
fff25d3a3a Quartz, Bug 655057: Eliminate Compiler Warning
When compiled with older SDKs, the original change for this bug caused a
compiler warning about NSWindow not being able to handle a setStyleMask
message. This tricks the compiler into thinking that it can.
2011-10-09 09:52:14 -07:00
John Ralls
0d0412bcc9 Bug 658772: Directory paths for resource directories are hard coded.
Provide dynamic path discovery functions as are provided for win32.
2011-10-08 18:08:29 -07:00
Kristian Rietveld
b3314acd97 quartz: also update window position on windowDidResize
When a window goes fullscreen, the resize also changes its size.
2011-10-08 11:28:44 +02:00