Commit Graph

922 Commits

Author SHA1 Message Date
Paul Cornett
603e7f6d0c Avoid unrealizing a frozen window
It seems to continue to prevent updates to the affected area

Fixes #13543


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-28 16:09:12 +00:00
Paul Cornett
cec92136b4 call Thaw() instead of DoThaw() so frozen status will be properly updated, and use a loop in case window has been frozen more than once
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72552 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-25 18:01:04 +00:00
Vadim Zeitlin
82213cb04e Set modifiers properly for the key events with AltGr in wxGTK.
Just as under Windows, represent AltGr as a combination of wxMOD_CONTROL and
wxMOD_ALT.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72455 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-09-09 13:36:20 +00:00
Vadim Zeitlin
d50905f761 Fix wxKeyEvent::m_uniChar for EVT_CHAR for native controls in wxGTK.
It was mistakenly set to the same value as in EVT_KEY_DOWN event but, just as
m_keyCode, it may be different for EVT_CHAR.

Use gdk_keyval_to_unicode() to set it correctly instead of inheriting
EVT_KEY_DOWN value.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72267 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-31 11:29:00 +00:00
Vadim Zeitlin
2f7baaeccf Don't eagerly set wxKeyEvent position fields.
This results in a noticeable delay when using wxGTK via a remote X11
connection for every key event as a round trip to server is needed to get the
mouse pointer position every time a key is pressed or released.

Only provide the position on demand. And explain that it's actually not very
useful as it's simply the same as the current mouse position.

Closes #14361.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72207 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-24 20:45:52 +00:00
Vadim Zeitlin
992ea4068c Refactor: extract GtkScrolledWindow creation from wxWindow::Create().
No real changes, just make it possible to reuse the scrolled window and
scrollbars creation code from derived classes.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-24 20:45:21 +00:00
Vadim Zeitlin
aedc06e391 Handle accelerators earlier in keyboard processing code in wxGTK.
Translate key presses to accelerators before sending wxEVT_KEY_DOWN.
Also check for accelerators even for the key combinations handled by IM,
normally IM should take precedence but IM seems to intercept common keys such
as Shift+anything which it makes sense to use as accelerators.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72176 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-23 15:03:21 +00:00
Paul Cornett
a4cb858716 simplify mouse button handling code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72157 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-20 04:59:20 +00:00
Paul Cornett
2c48aec501 improve appearance of themed borders
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72146 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-19 15:39:48 +00:00
Vadim Zeitlin
a73251a80d Allow building wxGTK3 with Broadway backend.
Use GDK_WINDOWING_BROADWAY to fix compilation with it.

Closes #14469.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72075 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-13 18:22:22 +00:00
Vadim Zeitlin
c38373bd54 Fix wxGTK compilation with MSVC after GTK+ 3 changes.
Don't use preprocessor conditions inside a macro invocation, MSVC doesn't
support this.

Closes #14448.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71947 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-07-02 22:59:14 +00:00
Paul Cornett
9dc44eff02 support for GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71894 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-30 20:39:06 +00:00
Vadim Zeitlin
a7130edbab Provide wxGetKeyState() studfor wxGTK under Windows.
Under Unix this function is implemented in X11-specific code, so provide a
stub under Windows to at least avoid link errors.

Closes #14409.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-17 21:34:50 +00:00
Paul Cornett
d5027818a4 fix warnings about conversion to bool, closes #14381
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71685 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-07 05:18:30 +00:00
Paul Cornett
ecdfd09516 fix warnings about unreachable return statements
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71684 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-07 05:13:19 +00:00
Paul Cornett
401c8bc231 Fix layout of wxStaticText, and possibly other controls.
GtkLabel perversely does not use its actual size to do layout, but will use its
size request. So restore calling gtk_widget_set_size_request() for all widgets,
which was removed in r71465. See #14374


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-06-04 17:36:51 +00:00
Paul Cornett
3b7067a05d Remove use of "size-request" signal for wxWindow sizing.
This signal has been removed from GTK3. Instead have wxPizza keep track of child
size, and use gtk_widget_set_size_request() for wxWindows in native containers.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71465 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-17 15:29:50 +00:00
Vadim Zeitlin
25cc08c07b Use XkbKeycodeToKeysym() instead of deprecated XKeycodeToKeysym().
XKeycodeToKeysym() is deprecated in new X11 headers because it doesn't work
correctly with all symbols (https://bugs.freedesktop.org/show_bug.cgi?id=5349).
Use XkbKeycodeToKeysym() instead, this should help with some keys and also
avoids deprecation warnings during compilation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71373 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-05-07 13:12:23 +00:00
Vadim Zeitlin
39258ad796 Make wxGTK code returning correct focus in popup menu presence more robust.
Replace the changes of r69938 with an alternative and simpler solution:
instead of playing games with gs_pendingFocus, which could break down if its
old value became invalid while the menu was shown as happened if one of the
menu commands resulted in this window being destroyed, just take the currently
shown popup menu into account in DoFindFocus() itself.

This should be safer as there is no danger of any dangling pointers here and
is also simpler and more obviously correct.

Closes #14103.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71313 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-28 22:25:26 +00:00
Paul Cornett
3cc04de73e defer queue-resize until after size-allocate processing, to keep it from being ignored by GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-20 16:05:13 +00:00
Paul Cornett
01a49fd4c4 move widget resize handling from DoSetSize to DoMoveWindow
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-19 17:15:40 +00:00
Paul Cornett
0604cfd7b9 simplify default border code in DoSetSize
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71237 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-19 16:51:06 +00:00
Paul Cornett
4d711190c7 rearrange some code in DoSetSize to facilitate upcoming changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71236 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-19 16:44:59 +00:00
Vadim Zeitlin
34670bdafe Fix for wxUniv/GTK compilation.
wxWindowBase needs to be explicitly cast to wxWindow in wxUniv/GTK build but
this wasn't done in the changes of r70597.

Cloes #14235.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71235 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-19 16:14:18 +00:00
Paul Cornett
90dcb0d968 Adjust x,y parameters by pizza scroll offset in DoSetSize
This should cause no change in behavior, and is merely preparation for further changes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-18 16:30:11 +00:00
Paul Cornett
86e73b4397 remove AdjustForParentClientOrigin call, it does nothing in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71211 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-16 15:45:52 +00:00
Vadim Zeitlin
4eeceb1573 Add support for horizontal mouse wheel events to wxGTK too.
Handle GDK_SCROLL_{RIGHT,LEFT} directions in scroll-event handler in wxGTK.

Closes #14221.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71195 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-04-14 22:27:34 +00:00
Paul Cornett
140371064e Fix keyboard navigation broken in r70324, see #14084
Also fixes some other keyboard navigation problems, closes #2849


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-03-20 03:34:18 +00:00
Paul Cornett
b4261b2033 Remove code to query GDK window origin from DoGetPosition(), it should not be necessary, and was probably wrong anyway.
This allows removing unnecessary assertions on m_widget (see #14052).
Also, avoid setting initial position to (-1,-1)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70734 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-28 05:29:35 +00:00
Vadim Zeitlin
3b81515cb1 Fix wxGTK compilation when using non X11-based GDK.
Only use X11-specific GDK functions inside "#ifdef GDK_WINDOWING_X11" checks.

Closes #14044.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70701 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-26 17:18:41 +00:00
Paul Cornett
93a555caff modification to fix in r70597, has-window check is unnecessary and perhaps incorrect
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70611 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 16:41:23 +00:00
Paul Cornett
5807245682 avoid sending mouse events to the wrong window, fixes #2917
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70597 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-15 07:04:42 +00:00
Paul Cornett
ac900e6ba5 remove wxGraphicsContext dependency for transparent background support
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-11 19:39:23 +00:00
Vadim Zeitlin
1442168125 Implement wxBG_STYLE_TRANSPARENT support for wxGTK.
Use composited windows if supported by GTK+ for wxWindows with this background
style.

Also add wxWindow::IsTransparentBackgroundSupported() and show how to use it
in the sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-11 16:26:52 +00:00
Paul Cornett
3b7c7652d7 remove code ifdef-ed on __X__, it is never defined for wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-02-05 17:43:28 +00:00
Paul Cornett
b9ced7a914 remove virtual override that just calls base
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70490 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-31 17:44:32 +00:00
Paul Cornett
5105db37ab implement wxGetMousePosition without using X-specific code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-31 17:41:21 +00:00
Paul Cornett
030f4112fc handle theme change which changes window border width
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-31 07:30:11 +00:00
Paul Cornett
ef1e09f852 in addition to key events, also prevent unhandled mouse events from propagating up parent chain
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-14 19:54:50 +00:00
Paul Cornett
b6e51ead97 prevent unhandled key events from propagating up parent chain
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-01-12 18:06:07 +00:00
Paul Cornett
6041f69ca7 remove SetBackgroundStyle call from OnInternalIdle, it should be done from realize handler, closes #13799
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70091 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-22 18:21:41 +00:00
Vadim Zeitlin
4cf1a9bf4a Ensure that Enter key presses are never stolen from wxButton in wxMSW.
This commit fixes the following bug: when an in-place editor control containing
an embedded button was used in wxDataViewCtrl, pressing Enter on the button
would close the editor, accepting changes, instead as (generic) wxDataViewCtrl
intercepts WXK_RETURN in its EVT_CHAR_HOOK handler. To prevent this from
happening, wxButton now handles EVT_CHAR_HOOK itself and never lets the parent
window intercept it if it's for WXK_RETURN. To ensure that normal
wxEVT_KEY_DOWN and wxEVT_CHAR are still generated in this case, wxButton
handler calls the new wxKeyEvent::DoAllowNextEvent() method that was added to
allow suppressing EVT_CHAR_HOOK only, without affecting the subsequent events.
DoAllowNextEvent() is currently only used in wxMSW but support for it was also
added to wxGTK and (both) wxOSX ports.

See #9102.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-11 17:03:56 +00:00
Vadim Zeitlin
64c502e828 Refactor to eliminate duplication in wxGTK key events generation code.
This also fixes a small bug with wxKeyEvent::m_uniChar not being always set
correctly to the same value as m_keyCode for ASCII characters.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-08 15:55:37 +00:00
Vadim Zeitlin
079b6a775a Fix Unicode key code for Ctrl-letter in wxGTK.
This was broken by changes in r69892 and just the letter was used as the key
code instead of Ctrl-letter as it used (and should) be.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-08 14:54:25 +00:00
Paul Cornett
ffaaf1078e In Refresh(), allow for possibility that child is mapped and parent is not.
It turns out this can actually happen, and is apparently allowed by GTK.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-07 19:34:57 +00:00
Vadim Zeitlin
55fb00a73a Pretend that the window showing popup menu has focus in wxGTK.
This is necessary for compatibility with wxMSW as the focus remains on the
window which had it before the popup menu was shown there and existing code
relies on it, while in wxGTK the popup steals the focus when it's shown.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-07 00:59:48 +00:00
Vadim Zeitlin
3a95f73c00 Make wxEVT_CHAR_HOOK propagate upwards and send it to the window itself.
Send wxEVT_CHAR_HOOK events to the focused window itself but make them
propagatable to ensure that the parent windows (including the top level
parent) still get it. This still allows the TLW parent to intercept keyboard
handling in its child but allows the child (or an intermediate parent window)
to have some say in the matter.

See #9102.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-02 00:50:25 +00:00
Vadim Zeitlin
f47a359113 Make wxEVT_CHAR_HOOK behave in wxGTK as in wxMSW.
Send wxEVT_CHAR_HOOK before wxEVT_KEY_DOWN and avoid generating both
wxEVT_KEY_DOWN and wxEVT_CHAR if the hook event was handled.

This makes wxGTK behave consistently with wxMSW and wxOSX/Cocoa as can be seen
in the keyboard sample.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69892 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-12-02 00:50:22 +00:00
Paul Cornett
514b0e137e build fixes for Universal
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-28 05:00:09 +00:00
Vadim Zeitlin
cf0a0f9303 Move GDK_META_MASK definition in the header in which it is also used.
The code using GDK_META_MASK was moved to wx/gtk/private/event.h from
gtk/window.cpp but the fallback definition of GDK_META_MASK for GTK+ < 2.10
remained in window.cpp.

Move it to the header as well now so that it can be compiled with GTK+ < 2.10
again.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69698 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-11-08 11:02:05 +00:00