Commit Graph

998 Commits

Author SHA1 Message Date
Vadim Zeitlin
94e1ee1b4d Don't crash when creating wxStaticBox in wxGTK.
Since r74585, wxWindow::SetCanFocus() is called from wxStaticBoxBase ctor,
i.e. before the real window is created, and this results in a crash in wxGTK
where SetCanFocus() needs a valid widget.

Fix this simply by doing nothing in SetCanFocus() if the widget is not created
yet as this should result in the same behaviour as before r74585. This doesn't
seem like the right thing to do, however, and we should probably remove this
call from wxStaticBoxBase ctor and do it in wxStaticBox implementation itself
instead.

Closes #15358.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74594 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-25 21:54:53 +00:00
Vadim Zeitlin
a0bb0df5d7 Don't assume that KeySym is always defined as long in wxGTK.
Apparently this is not the case when using Wayland and using "%ld" to print it
out results in an assert failure.

Closes #15351.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74573 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-18 10:07:18 +00:00
Vadim Zeitlin
4ec2eca1e8 Fix wxGTK compilation in wxUSE_MENUS==0 case.
Add missing check for it to wxWindow::DoFindFocus().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74530 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-15 15:14:49 +00:00
Vadim Zeitlin
5833988cb7 Add wxMouseEvent::GetColumnsPerAction().
This is similar to the existing GetLinesPerAction() but is for, surprise,
columns.

Also change the documentation to say that the value returned by both of these
methods is 3 under "most platforms" as some wxOSX currently uses 1 and not 3.

Closes #15239.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74156 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-10 15:53:29 +00:00
Paul Cornett
3ffa8d8c02 update position for widgets in native containers, fixes #15231
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74074 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-06-01 17:06:14 +00:00
Vadim Zeitlin
ce7fe42e84 Provide shorter synonyms for wxEVT_XXX constants.
Use the same short names as are used by the event table macros for the event
type constants themselves. This makes them much more comfortable to use, e.g.
Bind(wxEVT_BUTTON) compared to Bind(wxEVT_COMMAND_BUTTON_CLICKED).

The old long names are still kept for backwards compatibility and shouldn't be
removed as it doesn't really cost anything to continue providing them, but all
new event types should only use the short versions.

Closes #10661.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73850 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-04-25 10:11:03 +00:00
Vadim Zeitlin
b2c357747d Add IM and full wxEVT_CHAR support to wxTextCtrl and wxComboBox in wxGTK.
Generate wxEVT_CHAR events for non-ASCII characters entered in these controls
by intercepting their insert-text signal.

Also try to use GtkEntry/GtkTextView internal IM objects but unsuccessfully so
far.

Closes #3158.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73695 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-21 22:37:09 +00:00
Vadim Zeitlin
afa9873106 Refactor wxGTK IM-related code to allow future modifications.
No real changes, just make it possible to use a different IM than the one
allocated in wxWindow for input handling. This will be used in the upcoming
changes to wxTextEntry and the related classes.

See #3158.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-03-21 22:37:01 +00:00
Paul Cornett
4116bc7edd call GTKApplyWidgetStyle() from PostCreation() instead of GTKHandleRealized()
it's a better place to catch font or color changes made before creation

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73361 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-10 07:17:01 +00:00
Paul Cornett
92ef38ee6b allow setting window font and bg/fg color before creation
wxMSW and wxOSX don't have a problem with it, so neither should wxGTK

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73360 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-10 06:53:14 +00:00
Paul Cornett
b387025d5d simplify code setting backing pixmap
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73359 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-01-10 06:28:18 +00:00
Paul Cornett
b0d053c1ea Use client size determined by size-allocate when possible
Our client size calculation can be wrong for reasons beyond our control,
notably on Ubuntu 12.04 with overlay scrollbars where the GtkScrolledWindow
"scrollbar-spacing" is wrong. By using the true size from size-allocate
when it becomes available, we can recover from an earlier incorrect client
size calculation. See #14871


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73231 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-20 18:46:58 +00:00
Paul Cornett
cbe6a493b6 compute scrollbar spacing the same way GtkScrolledWindow does it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73186 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-14 06:29:54 +00:00
Vadim Zeitlin
adba5bab81 Don't test for key code being valid unnecessarily.
The key code was already found to be valid just above, so suppress Coverity
warning about an always true test by not checking it again. This also makes
the code more clear.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73148 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-12-08 00:37:38 +00:00
Paul Cornett
eaa8686b71 fix for GTK assert after r72696, a draw/expose_event signal may also be attached to parent
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-26 17:53:01 +00:00
Vadim Zeitlin
d8ba3099e1 Fix wxALWAYS_SHOW_SB behaviour in wxGTK.
Don't show the scrollbar always if it's not enabled at all, i.e. if the
corresponding wxHSCROLL or wxVSCROLL style is not specified.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73022 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-26 13:14:39 +00:00
Vadim Zeitlin
7df04680cb Add check for destroying window with mouse capture in wxGTK.
We already have an assert checking for this at wxWindowBase level but it seems
that it wasn't always triggered somehow (maybe because we crashed before
getting there?), so do it sooner.

Closes #14602.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-24 00:33:19 +00:00
Paul Cornett
d180f4e007 put both versions of wxGetMousePosition in one place so they can use one implementation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72983 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-19 04:17:42 +00:00
Paul Cornett
6bfcc4ec98 avoid deprecated functions with GTK3
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-16 07:35:53 +00:00
Paul Cornett
070bae64c4 silence warnings about unhandled enum value in switch
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72963 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-16 07:30:07 +00:00
Paul Cornett
4acce08799 Remove code that has no effect
Adjusting the wxEVT_ENTER_WINDOW mouse position is pointless, execution won't reach that far if
gdk_event->window != gtk_widget_get_window(widget), and GetClientAreaOrigin() always returns (0,0).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72962 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-16 07:24:29 +00:00
Paul Cornett
12fdbd3d6a Fix GetClientSize() when scrollbars are present
The value of GtkScrolledWindowClass.scrollbar_spacing seems to be invalid (-1).
Use the style property "scrollbar-spacing" instead.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-14 18:19:25 +00:00
Paul Cornett
80a77e3c73 fix setting background color in wxGTK3 with themes which use background images or gradients, fixes #14759
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72881 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-11-04 17:39:55 +00:00
Vadim Zeitlin
8cd79b7af0 Factor out text measurement from wxDC and wxWindow into wxTextMeasure.
Add a new private wxTextMeasure class implementing methods for measuring text
and move the often duplicated (but not always identically) code for doing the
same from wxDC and wxWindow into it.

Currently this class is only really implemented in wxMSW and wxGTK.

Also extend the test for text measuring functions and rename it to
MeasuringTextTestCase from MeasuringContextTestCase as it's not wxGC-specific
any more.

Closes #14705.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-17 22:35:49 +00:00
Paul Cornett
8ab7533289 Disconnect all GTK signals referencing a wx object which is being destructed
or which is destroying the associated GTK object


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72696 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-17 16:23:18 +00:00
Vadim Zeitlin
723a83c94a Add a debug helper to show information about a GtkWidget under gdb.
For now just give its type which is not exactly exhaustive but better than
nothing.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72688 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2012-10-16 14:02:17 +00:00
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