Commit Graph

1011 Commits

Author SHA1 Message Date
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
Paul Cornett
c968ba805b simplify Refresh(), ancestors of a mapped window have to be mapped also, no point in checking
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-31 05:36:51 +00:00
Paul Cornett
6d50fadaea in DoSetSize, only call GetPosition if necessary
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69605 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-31 05:22:59 +00:00
Paul Cornett
cb0c51acf8 correct callback function signature
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69604 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-31 05:15:04 +00:00
Paul Cornett
f0b87ef91c move class function out of extern "C" block
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69603 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-31 05:14:13 +00:00
Vadim Zeitlin
1da8e6e400 Make GTK callbacks passed to GTKConnectWidget() extern "C".
This fixes (harmless but annoying) warnings about mixing C++ and C linkage
function pointers from Sun compiler.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-27 21:10:45 +00:00
Paul Cornett
1a0d3739c1 avoid GDK warning "drawable is not a pixmap or window"
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69523 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-25 06:00:24 +00:00
Václav Slavík
4a99d59750 Move InitMouseEvent<T>() to wx/gtk/private/event.h.
It is needed in wxDataViewCtrl now too, in addition to wxWindow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69472 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-19 16:20:10 +00:00
Václav Slavík
843101f766 Send wxEVT_CREATE and do other post-realization initialization even if the widget was realized early.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-19 16:19:55 +00:00
Václav Slavík
9a237e2f12 Set wxFocusEvent's window value for wxEVT_KILL_FOCUS in wxGTK.
Note that it is still not set for wxEVT_SET_FOCUS, because it's not
immediately obvious how to obtain the previously focused window from
there. It's still better than always having the window NULL.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69467 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-19 16:19:52 +00:00
Václav Slavík
d81ccfce37 Don't call wxEvent::SetTimestamp() twice in InitMouseEvent<>().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69435 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-15 14:19:19 +00:00
Vadim Zeitlin
612515aff1 Added wxWindow::GTKHandleRealized() virtual method to wxGTK.
This allows to easily do something in the derived classes when the widget is
realized, without having to deal with GTK+ signals. In particular, get rid of
another "realize" signal handler in wxTopLevelWindow and simply override this
virtual method there.

It also incidentally makes the callback code simpler as the window doesn't
need to be constantly dereferenced.

This shouldn't result in any changes to behaviour.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2011-10-12 16:22:14 +00:00