Commit Graph

1011 Commits

Author SHA1 Message Date
Paul Cornett
50ca21f966 Fix cursor inheritance and busy cursor/global cursor, closes #15801
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@75690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2014-01-23 18:27:13 +00:00
Vadim Zeitlin
80969d29a1 Don't eat mouse wheel events if we can't handle them in wxGTK.
The recent changes to mouse wheel scrolling broke it for the generic
wxListCtrl and probably any other situation in which scrollbars don't scroll
the window itself but some subwindow of it. In this case, the scroll wheel
event handler doesn't have any scrollbar to adjust, so it simply does nothing
and shouldn't return true, as it did since r74911.

Just return false in case we are not doing anything to let the mouse wheel
work as before.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_3_0_BRANCH@75193 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-11-15 13:35:01 +00:00
Paul Cornett
afab8b85c4 Go back to using a fixed value of 3 for lines/columns per action for mouse wheel event.
The native value is too large. Reverts the effect of r74805. Closes #15527


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-10-01 16:33:30 +00:00
Paul Cornett
ac687ddffb fix vertical mouse wheel event rotation value, sign was reversed in r74805
fixes #15524

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74848 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-20 15:21:25 +00:00
Paul Cornett
8a1554ed3c add support for GDK_SCROLL_SMOOTH mouse wheel event, introduced in GTK+ 3.4
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-14 18:15:42 +00:00
Paul Cornett
53f1a5b1bd use native lines/columns per action for mouse wheel event
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74805 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-14 18:06:54 +00:00
Vadim Zeitlin
6ba718d7ae Fix horizontal mouse wheel scrolling in wxGTK.
Change the value of the appropriate adjustment instead of always using the
vertical one.

Closes #15469.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-09-06 00:20:06 +00:00
Paul Cornett
cb41a69b15 Don't update position of widgets in a wxPizza from size_allocate handler.
The values in m_{x,y} are not the same as client coordinates if the wxPizza is scrolled.
Closes #15444


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74733 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-31 03:25:12 +00:00
Václav Slavík
45d66f592c Loosen the assert in IsScrollIncrement().
wxWindowGTK::GTKGetScrollEventType() tries to map GtkAdjustment's delta
to either step or page increment by comparing it with the respective
GtkAdjustment steps. Both of them can be 0, but this code is not
expected to be called in such case.

Yet, in practice, it occasionally is, see e.g.
http://devel.aegisub.org/ticket/979GTKGetScrollEventType (wxWebView is
prone to it as well).

Check for >= 0 instead, to be more robust when faced with unexpected
input from GTK+.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74730 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-30 13:14:50 +00:00
Vadim Zeitlin
88e264616b Don't hide the window in its dtor in wxGTK.
This results in sending an unexpected wxShowEvent to an already half-destroyed
(because the derived class dtor had been already executed) by now object which
could provoke crashes. And it also seems to be completely unnecessary as the
window is going to be destroyed anyhow -- and the other ports don't hide it
before this happens (unless it's a TLW in which case it is already hidden in
wxTopLevelWindowBase::Destroy()).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74655 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-13 17:36:47 +00:00
Paul Cornett
4c99fdfaf4 prevent infinite loop if gtk_menu_popup() fails, fixes #15387
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-08-05 17:10:58 +00:00
Paul Cornett
4ae5ada038 defer calling SetCanFocus() on wxGTK until after creation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74618 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-31 16:03:51 +00:00
Vadim Zeitlin
3f66f6a5b3 Remove all lines containing cvs/svn "$Id$" keyword.
This keyword is not expanded by Git which means it's not replaced with the
correct revision value in the releases made using git-based scripts and it's
confusing to have lines with unexpanded "$Id$" in the released files. As
expanding them with Git is not that simple (it could be done with git archive
and export-subst attribute) and there are not many benefits in having them in
the first place, just remove all these lines.

If nothing else, this will make an eventual transition to Git simpler.

Closes #14487.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2013-07-26 16:02:46 +00:00
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