Commit Graph

1089 Commits

Author SHA1 Message Date
Jaakko Salli
614a87dffe When setting empty string as a tooltip, call gtk_widget_set_has_tooltip() with FALSE to remove the tooltip. This will bring wxGTK behavior in line with wxMSW.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-23 12:55:22 +00:00
Vadim Zeitlin
d0fb62a656 Generate the same flags for modifier key events in wxGTK as in wxMSW.
Resolve the discrepancy between modifier flags of the key events corresponding
to the modifier key itself between wxMSW and wxGTK by changing the latter to
follow wxMSW behaviour.

Clearly document the now officially correct behaviour of the modifiers for the
key events corresponding to the modifiers keys themselves in the manual.

This fix also makes it unnecessary to work around this bug in the keyboard
unit test so remove it from there.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65527 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-11 10:19:14 +00:00
Vadim Zeitlin
7333c0ef82 Generate unshifted Unicode key codes in wxEVT_KEY_XXX events in wxGTK.
wxGTK generated wxEVT_KEY_XXX with key codes corresponding to the unshifted
state of the key (except for the letters) but Unicode key codes corresponding
to the current shift state. This was inconsistent with wxMSW and also with the
idea that key events, unlike char ones, don't depend on the modifiers states.

Change wxGTK to behave as wxMSW and use unshifted values for Unicode key codes
as well.

Remove the now unnecessary workaround for different key event Unicode codes
from test.

Also try to explain the difference between normal and Unicode keys and key and
char events even better and mention that the Unicode key codes for the key
events are also untranslated in the documentation.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-11 10:19:07 +00:00
Vadim Zeitlin
9cbe96d093 Remember the last key event in wxGTK before passing it over to IM.
Save the last key event before calling IM filter to be able to get the correct
modifiers, timestamp, position &c to use for the CHAR event generated from IM
commit callback.

This restores the changes of r34504 which were reverted for unknown (or at
least unmentioned) reason in r34521.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65517 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-09-11 10:18:19 +00:00
Vadim Zeitlin
276f883f7a Don't set Unicode key code in key events to non-Unicode values in wxGTK.
Only assign the wx key code wxKeyEvent::m_uniChar if it's a key corresponding
to an ASCII symbol, don't do it for the values outside of ASCII range such as
all the special WXK_ constants. It doesn't make sense to generate Unicode key
codes for e.g. cursor key presses.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65240 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-08-10 22:38:54 +00:00
Vadim Zeitlin
2933f70a8b Don't reuse the same event object for multiple events in wxGTK.
The old code simply called SetEventType() to change the type of the event and
called HandleWindowEvent() again with it. This was incorrect as the event was
modified after being processed the first time, notably its WasProcessed() flag
was set and so wxApp::FilterEvent() wasn't called when it was being processed
the second time. In practice this meant that FilterEvent() was never called
for wxEVT_CHAR events -- for which it's nevertheless very useful to have as it
allows to implement application-wide keyboard processing.

Also refactor the code to avoid duplication, exactly the same event sending
code was used in gtk_window_key_press_callback() and gtk_wxwindow_commit_cb().
Extract it now in a private SendCharHookAndCharEvents() function.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-18 11:53:04 +00:00
Vadim Zeitlin
b35549525f Implement wxWindow::DoGetBorderSize() for all ports.
Implement DoGetBorderSize() properly for wxGTK and use the difference between
the full window size and the client size for all the ports not implementing
this method. The latter is incorrect in the presence of the scrollbars but is
the best we can do in general.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64880 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-07-11 10:43:49 +00:00
Paul Cornett
6e7cf3bd5b invalidate border area when showing or hiding a pizza widget, fixes #12174
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-25 04:31:45 +00:00
Robert Roebling
9c76b9afa9 Patch update, probably fixes #12090: wxGTK cursor handling revamp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-30 20:01:36 +00:00
Paul Cornett
375efc1fce Remove pizza backing window.
When it is present, no-window widgets sometimes don't get expose events for
reasons I could not determine. And it is dubious that it improved scrolling
performance on modern hardware anyway, and almost certainly doesn't help now
that GTK+ is using "client side windows".


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64431 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-30 06:38:28 +00:00
Robert Roebling
c2246a3881 Applied patch, fixes #12090: wxGTK cursor handling revamp
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-05-26 17:37:55 +00:00
Vadim Zeitlin
c59aa14a6c Set popup menu invoking window in wxWindowBase and not in all ports.
Don't duplicate the code for setting (and unsetting, which was forgotten by at
least wxGTK) the popup menu invoking window in all ports but do it in the base
class PopupMenu() itself.

Also add a helper wxMenuInvokingWindowSetter class which ensures that the
invoking window will be unset in any case.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-26 14:19:17 +00:00
Vadim Zeitlin
6de0a414a5 Don't set invoking window recursively in wxGTK wxWindow::PopupMenu().
Setting the invoking window for all submenus is unnecessary as
wxMenu::GetWindow() recurses upwards anyhow and results in assert failures
after recent menu code changes.

Simply don't do this.

OTOH do reset the invoking window to NULL after the menu is dismissed to avoid
storing a dangling pointer in the menu.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64142 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-26 14:19:10 +00:00
Paul Cornett
9914bfbb77 freeze whole window for TLW
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 01:06:39 +00:00
Paul Cornett
2f55b88cb0 avoid permanently frozen TLW when frozen child is destroyed with GTK+ 2.18
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-05 00:45:21 +00:00
Paul Cornett
f089940f68 Reverse hierarchy of wxPizza GdkWindows
widget->window must be topmost in order for GTK+ to calculate DND drop coordinates correctly
fixes #11834


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63775 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-03-29 01:16:06 +00:00
Paul Cornett
0f52f61085 remove unused data member
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62754 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-01 16:23:48 +00:00
Vadim Zeitlin
0d013e46a0 No real changes, just inline wxSuspendStyleEvents.
wxSuspendStyleEvents helper class was used in one place only and the code is
more clear if its ctor and dtor are inlined directly into DoApplyWidgetStyle()
itself instead of being located far away from it.

Also, we only need to suppress the events for top level windows so don't
bother doing anything at all when changing styles for m_widget and not m_wxwindow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:56:12 +00:00
Vadim Zeitlin
a0c8bb73f2 Add wxWindowGTK::GTKConnectWidget() helper.
This trivial wrapper function allows to omit "m_widget" and "this" arguments
when calling g_signal_connect().

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:55:01 +00:00
Vadim Zeitlin
bb8afd6543 Small code cleanup in wxWindowGTK::PostCreation().
No real changes, just check for 2.8.0 GTK+ version once instead of doing it
twice in a row.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62274 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:54:55 +00:00
Vadim Zeitlin
92153555cf Added GTKShouldConnectSizeRequest() to prevent size_request handling.
Don't hard code the exception for GtkFileChooserButton in
wxWindow::PostCreation() in wxGTK, handling size_request signal also breaks
other controls (e.g. upcoming wxInfoBar native implementation). Instead,
define a virtual function which may be overridden to return false if
size_request shouldn't be connected.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62273 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-10-05 22:54:46 +00:00
Julian Smart
ec2d6790e9 Fixed wxBORDER_THEME breakage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-22 10:58:06 +00:00
Vadim Zeitlin
03647350fc No changes, just removed hard tabs and trailing white space.
This commit is huge but there are no non-white-space changes in it.

Some files containing third-party sources (src/msw/wince/time.cpp,
src/x11/pango*.cpp) were left unchanged.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61724 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-08-21 10:41:26 +00:00
Michael Wetherell
fb4b0165b2 Fix SetToolTip(NULL) to unset the tooltip.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-28 17:48:37 +00:00
Vadim Zeitlin
9a83f86094 Globally replace _T() with wxT().
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660).

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Vadim Zeitlin
9c61c5b04b introduce wxBG_STYLE_{ERASE,PAINT} and implement their documented semantics in wxGTK
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61084 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 23:04:42 +00:00
Vadim Zeitlin
02bad8305c added helper GTKShouldIgnoreEvent() to use in void GTK event handlers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61079 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-16 19:08:24 +00:00
Vadim Zeitlin
6de7047076 add virtual DoGetTextExtent() to allow calling the overloaded wxWindowBase::GetTextExtent() on wxWindow objects without any ugly casts/scope resolution operators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60984 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-06-10 16:41:41 +00:00
Vadim Zeitlin
3cc5704485 do allow calling Hide() on the window before it is created
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-20 13:16:53 +00:00
Francesco Montorsi
9a33c3ef80 use WX_PIZZA(...) to deference pointers only when we are sure that the pointer is non-NULL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-04-20 18:49:20 +00:00
Vadim Zeitlin
b4857be372 don't assert in Refresh() if window is not created yet, simply return without doing anything (fixes crash on startup in the aui sample introduced by r59394)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-23 15:59:37 +00:00
Robert Roebling
d02852036d wxBusyInfo now uses wxGenericStaticText under GTK+, more Refresh/Update updates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-06 23:30:54 +00:00
Robert Roebling
ba86da30cf Use gdk_window_invalidate instead of gtk_widget_queue_draw as the latter doesn't e.g. invalidate a wxTreeCtrl correctly when place somewhere different from 0,0
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59202 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-28 17:22:35 +00:00
Paul Cornett
c4021a7920 use bool expression rather than implicit conversion
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-18 18:02:53 +00:00
Paul Cornett
f8f7cff436 remove unused wxKeyEvent member m_scanCode
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-18 17:15:40 +00:00
Robert Roebling
496e7ec647 More GTK prefixing for internal methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58877 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-13 10:25:38 +00:00
Robert Roebling
7fc8b9a4fe GTK prefix for internal tooltip methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58876 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-13 10:10:36 +00:00
Robert Roebling
71ead4bf23 Removed unneeded FixUpMouse() method, some more GTK prefixing
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58875 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-13 10:00:22 +00:00
Paul Cornett
a1c6f06900 new wxTaskBarIcon implementation for GTK2
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 22:21:24 +00:00
Robert Roebling
40b849aafe Use wxRound() instead of (int)(my_double + 0.5);
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-04 21:12:16 +00:00
Robert Roebling
4c509aecb6 Invalidate only the specified rectangle
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58623 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-02 14:05:46 +00:00
Robert Roebling
08bbdb0858 The recent change to ::Refresh() (strangely) fails to invalidate e.g. a wxTreeCtrl in a wxDialog, revert the relevant part
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-02 14:02:50 +00:00
Paul Cornett
6cab4fcac7 simplify Refresh() and Update()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 07:52:39 +00:00
Paul Cornett
ab0c1a3c15 fix drawing from Update() being overwritten, fixes wxBusyInfo not drawing properly without wxYield
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58583 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-01 06:20:54 +00:00
Robert Roebling
e47e063af2 Add wxSIZE_FORCE_EVENT and use is from wxSizerItem::SetDimension
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-30 20:10:44 +00:00
Robert Roebling
55ca41b1ea Store pointer to owning wxWindow in wxPizza widget
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58503 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-29 22:32:25 +00:00
Francesco Montorsi
9800347d77 wxgtk_window_size_request_callback is not needed by wxStaticText anymore
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58352 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-24 13:42:00 +00:00
Robert Roebling
7da4a9cfea Remove scrollbar spacing from client size
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58326 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-23 12:39:56 +00:00
Robert Roebling
cd8445da0f Respect that GTK+ wants to have space between scrollbar and client area
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58294 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-22 13:34:17 +00:00
Robert Roebling
1fe91d7098 Give GTK specific (but public) methods a Gtk prefix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-21 11:36:28 +00:00