Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: ui/views/widget/native_widget_gtk.cc

Issue 8658003: Remove TOUCH_UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/widget/native_widget_gtk.h" 5 #include "ui/views/widget/native_widget_gtk.h"
6 6
7 #include <X11/Xatom.h> 7 #include <X11/Xatom.h>
8 #include <X11/Xlib.h> 8 #include <X11/Xlib.h>
9 #include <X11/extensions/shape.h> 9 #include <X11/extensions/shape.h>
10 #include <gdk/gdk.h> 10 #include <gdk/gdk.h>
(...skipping 24 matching lines...) Expand all
35 #include "ui/gfx/screen.h" 35 #include "ui/gfx/screen.h"
36 #include "ui/views/bubble/bubble_delegate.h" 36 #include "ui/views/bubble/bubble_delegate.h"
37 #include "ui/views/focus/view_storage.h" 37 #include "ui/views/focus/view_storage.h"
38 #include "ui/views/ime/input_method_gtk.h" 38 #include "ui/views/ime/input_method_gtk.h"
39 #include "views/controls/textfield/native_textfield_views.h" 39 #include "views/controls/textfield/native_textfield_views.h"
40 #include "views/views_delegate.h" 40 #include "views/views_delegate.h"
41 #include "ui/views/widget/drop_target_gtk.h" 41 #include "ui/views/widget/drop_target_gtk.h"
42 #include "ui/views/widget/gtk_views_fixed.h" 42 #include "ui/views/widget/gtk_views_fixed.h"
43 #include "ui/views/widget/gtk_views_window.h" 43 #include "ui/views/widget/gtk_views_window.h"
44 #include "ui/views/widget/root_view.h" 44 #include "ui/views/widget/root_view.h"
45 #include "ui/views/widget/tooltip_manager_gtk.h"
45 #include "ui/views/widget/widget_delegate.h" 46 #include "ui/views/widget/widget_delegate.h"
46 47
47 #if defined(TOUCH_UI)
48 #include "ui/base/touch/touch_factory.h"
49 #include "ui/views/widget/tooltip_manager_views.h"
50 #else
51 #include "ui/views/widget/tooltip_manager_gtk.h"
52 #endif
53
54 #if defined(HAVE_IBUS) 48 #if defined(HAVE_IBUS)
55 #include "ui/views/ime/input_method_ibus.h" 49 #include "ui/views/ime/input_method_ibus.h"
56 #endif 50 #endif
57 51
58 using ui::OSExchangeData; 52 using ui::OSExchangeData;
59 using ui::OSExchangeDataProviderGtk; 53 using ui::OSExchangeDataProviderGtk;
60 using ui::ActiveWindowWatcherX; 54 using ui::ActiveWindowWatcherX;
61 55
62 namespace views { 56 namespace views {
63 57
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 // have no way to tell the difference between a normal drag leave and a drop. 250 // have no way to tell the difference between a normal drag leave and a drop.
257 // To work around that we listen for DROP_START, then ignore the subsequent 251 // To work around that we listen for DROP_START, then ignore the subsequent
258 // drag-leave that GTK generates. 252 // drag-leave that GTK generates.
259 class NativeWidgetGtk::DropObserver : public MessageLoopForUI::Observer { 253 class NativeWidgetGtk::DropObserver : public MessageLoopForUI::Observer {
260 public: 254 public:
261 DropObserver() {} 255 DropObserver() {}
262 256
263 static DropObserver* GetInstance() { 257 static DropObserver* GetInstance() {
264 return Singleton<DropObserver>::get(); 258 return Singleton<DropObserver>::get();
265 } 259 }
266 #if defined(TOUCH_UI)
267 virtual base::EventStatus WillProcessEvent(
268 const base::NativeEvent& event) OVERRIDE {
269 return base::EVENT_CONTINUE;
270 }
271 260
272 virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE {
273 }
274 #else
275 virtual void WillProcessEvent(GdkEvent* event) { 261 virtual void WillProcessEvent(GdkEvent* event) {
276 if (event->type == GDK_DROP_START) { 262 if (event->type == GDK_DROP_START) {
277 NativeWidgetGtk* widget = GetNativeWidgetGtkForEvent(event); 263 NativeWidgetGtk* widget = GetNativeWidgetGtkForEvent(event);
278 if (widget) 264 if (widget)
279 widget->ignore_drag_leave_ = true; 265 widget->ignore_drag_leave_ = true;
280 } 266 }
281 } 267 }
282 268
283 virtual void DidProcessEvent(GdkEvent* event) { 269 virtual void DidProcessEvent(GdkEvent* event) {
284 } 270 }
285 #endif
286 271
287 private: 272 private:
288 NativeWidgetGtk* GetNativeWidgetGtkForEvent(GdkEvent* event) { 273 NativeWidgetGtk* GetNativeWidgetGtkForEvent(GdkEvent* event) {
289 GtkWidget* gtk_widget = gtk_get_event_widget(event); 274 GtkWidget* gtk_widget = gtk_get_event_widget(event);
290 if (!gtk_widget) 275 if (!gtk_widget)
291 return NULL; 276 return NULL;
292 277
293 return static_cast<NativeWidgetGtk*>( 278 return static_cast<NativeWidgetGtk*>(
294 internal::NativeWidgetPrivate::GetNativeWidgetForNativeView( 279 internal::NativeWidgetPrivate::GetNativeWidgetForNativeView(
295 gtk_widget)); 280 gtk_widget));
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 always_on_top_(false), 368 always_on_top_(false),
384 is_double_buffered_(false), 369 is_double_buffered_(false),
385 should_handle_menu_key_release_(false), 370 should_handle_menu_key_release_(false),
386 dragged_view_(NULL), 371 dragged_view_(NULL),
387 painted_(false), 372 painted_(false),
388 has_pointer_grab_(false), 373 has_pointer_grab_(false),
389 has_keyboard_grab_(false), 374 has_keyboard_grab_(false),
390 grab_notify_signal_id_(0), 375 grab_notify_signal_id_(0),
391 is_menu_(false), 376 is_menu_(false),
392 signal_registrar_(new ui::GtkSignalRegistrar) { 377 signal_registrar_(new ui::GtkSignalRegistrar) {
393 #if defined(TOUCH_UI)
394 // Make sure the touch factory is initialized so that it can setup XInput2 for
395 // the widget.
396 ui::TouchFactory::GetInstance();
397 #endif
398 static bool installed_message_loop_observer = false; 378 static bool installed_message_loop_observer = false;
399 if (!installed_message_loop_observer) { 379 if (!installed_message_loop_observer) {
400 installed_message_loop_observer = true; 380 installed_message_loop_observer = true;
401 MessageLoopForUI* loop = MessageLoopForUI::current(); 381 MessageLoopForUI* loop = MessageLoopForUI::current();
402 if (loop) 382 if (loop)
403 loop->AddObserver(DropObserver::GetInstance()); 383 loop->AddObserver(DropObserver::GetInstance());
404 } 384 }
405 } 385 }
406 386
407 NativeWidgetGtk::~NativeWidgetGtk() { 387 NativeWidgetGtk::~NativeWidgetGtk() {
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 signal_registrar_->Connect(window_contents_, "drag_end", 776 signal_registrar_->Connect(window_contents_, "drag_end",
797 G_CALLBACK(&OnDragEndThunk), this); 777 G_CALLBACK(&OnDragEndThunk), this);
798 signal_registrar_->Connect(window_contents_, "drag_failed", 778 signal_registrar_->Connect(window_contents_, "drag_failed",
799 G_CALLBACK(&OnDragFailedThunk), this); 779 G_CALLBACK(&OnDragFailedThunk), this);
800 signal_registrar_->Connect(G_OBJECT(widget_), "window-state-event", 780 signal_registrar_->Connect(G_OBJECT(widget_), "window-state-event",
801 G_CALLBACK(&OnWindowStateEventThunk), this); 781 G_CALLBACK(&OnWindowStateEventThunk), this);
802 782
803 ui::GObjectDestructorFILO::GetInstance()->Connect( 783 ui::GObjectDestructorFILO::GetInstance()->Connect(
804 G_OBJECT(widget_), &OnDestroyedThunk, this); 784 G_OBJECT(widget_), &OnDestroyedThunk, this);
805 785
806 #if defined(TOUCH_UI)
807 if (params.type != Widget::InitParams::TYPE_TOOLTIP) {
808 views::TooltipManagerViews* manager = new views::TooltipManagerViews(
809 static_cast<internal::RootView*>(GetWidget()->GetRootView()));
810 tooltip_manager_.reset(manager);
811 }
812 #else
813 tooltip_manager_.reset(new TooltipManagerGtk(this)); 786 tooltip_manager_.reset(new TooltipManagerGtk(this));
814 #endif
815 787
816 // Register for tooltips. 788 // Register for tooltips.
817 g_object_set(G_OBJECT(window_contents_), "has-tooltip", TRUE, NULL); 789 g_object_set(G_OBJECT(window_contents_), "has-tooltip", TRUE, NULL);
818 signal_registrar_->Connect(window_contents_, "query_tooltip", 790 signal_registrar_->Connect(window_contents_, "query_tooltip",
819 G_CALLBACK(&OnQueryTooltipThunk), this); 791 G_CALLBACK(&OnQueryTooltipThunk), this);
820 792
821 if (child_) { 793 if (child_) {
822 if (modified_params.parent) 794 if (modified_params.parent)
823 SetBounds(params.bounds); 795 SetBounds(params.bounds);
824 } else { 796 } else {
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
944 GdkGrabStatus pointer_grab_status = 916 GdkGrabStatus pointer_grab_status =
945 gdk_pointer_grab(window_contents()->window, FALSE, 917 gdk_pointer_grab(window_contents()->window, FALSE,
946 static_cast<GdkEventMask>( 918 static_cast<GdkEventMask>(
947 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | 919 GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
948 GDK_POINTER_MOTION_MASK), 920 GDK_POINTER_MOTION_MASK),
949 NULL, NULL, GDK_CURRENT_TIME); 921 NULL, NULL, GDK_CURRENT_TIME);
950 // NOTE: technically grab may fail. We may want to try and continue on in 922 // NOTE: technically grab may fail. We may want to try and continue on in
951 // that case. 923 // that case.
952 DCHECK_EQ(GDK_GRAB_SUCCESS, pointer_grab_status); 924 DCHECK_EQ(GDK_GRAB_SUCCESS, pointer_grab_status);
953 has_pointer_grab_ = pointer_grab_status == GDK_GRAB_SUCCESS; 925 has_pointer_grab_ = pointer_grab_status == GDK_GRAB_SUCCESS;
954
955 #if defined(TOUCH_UI)
956 ::Window window = GDK_WINDOW_XID(window_contents()->window);
957 Display* display = GDK_WINDOW_XDISPLAY(window_contents()->window);
958 bool xi2grab =
959 ui::TouchFactory::GetInstance()->GrabTouchDevices(display, window);
960 // xi2grab should always succeed if has_pointer_grab_ succeeded.
961 DCHECK(xi2grab);
962 has_pointer_grab_ = has_pointer_grab_ && xi2grab;
963 #endif
964 } 926 }
965 } 927 }
966 928
967 void NativeWidgetGtk::ReleaseMouseCapture() { 929 void NativeWidgetGtk::ReleaseMouseCapture() {
968 bool delegate_lost_capture = HasMouseCapture(); 930 bool delegate_lost_capture = HasMouseCapture();
969 if (GTK_WIDGET_HAS_GRAB(window_contents_)) 931 if (GTK_WIDGET_HAS_GRAB(window_contents_))
970 gtk_grab_remove(window_contents_); 932 gtk_grab_remove(window_contents_);
971 if (grab_notify_signal_id_) { 933 if (grab_notify_signal_id_) {
972 g_signal_handler_disconnect(window_contents_, grab_notify_signal_id_); 934 g_signal_handler_disconnect(window_contents_, grab_notify_signal_id_);
973 grab_notify_signal_id_ = 0; 935 grab_notify_signal_id_ = 0;
974 } 936 }
975 if (has_pointer_grab_) { 937 if (has_pointer_grab_) {
976 has_pointer_grab_ = false; 938 has_pointer_grab_ = false;
977 gdk_pointer_ungrab(GDK_CURRENT_TIME); 939 gdk_pointer_ungrab(GDK_CURRENT_TIME);
978 #if defined(TOUCH_UI)
979 ui::TouchFactory::GetInstance()->UngrabTouchDevices(
980 GDK_WINDOW_XDISPLAY(window_contents()->window));
981 #endif
982 } 940 }
983 if (delegate_lost_capture) 941 if (delegate_lost_capture)
984 delegate_->OnMouseCaptureLost(); 942 delegate_->OnMouseCaptureLost();
985 } 943 }
986 944
987 bool NativeWidgetGtk::HasMouseCapture() const { 945 bool NativeWidgetGtk::HasMouseCapture() const {
988 return GTK_WIDGET_HAS_GRAB(window_contents_) || has_pointer_grab_; 946 return GTK_WIDGET_HAS_GRAB(window_contents_) || has_pointer_grab_;
989 } 947 }
990 948
991 InputMethod* NativeWidgetGtk::CreateInputMethod() { 949 InputMethod* NativeWidgetGtk::CreateInputMethod() {
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
1229 } 1187 }
1230 1188
1231 void NativeWidgetGtk::SetAlwaysOnTop(bool on_top) { 1189 void NativeWidgetGtk::SetAlwaysOnTop(bool on_top) {
1232 DCHECK(!child_); 1190 DCHECK(!child_);
1233 always_on_top_ = on_top; 1191 always_on_top_ = on_top;
1234 if (widget_) 1192 if (widget_)
1235 gtk_window_set_keep_above(GTK_WINDOW(widget_), on_top); 1193 gtk_window_set_keep_above(GTK_WINDOW(widget_), on_top);
1236 } 1194 }
1237 1195
1238 void NativeWidgetGtk::Maximize() { 1196 void NativeWidgetGtk::Maximize() {
1239 #if defined(TOUCH_UI)
1240 // There may not be a window manager. So maximize ourselves: move to the
1241 // top-left corner and resize to the entire bounds of the screen.
1242 gfx::Rect screen = gfx::Screen::GetMonitorAreaNearestWindow(GetNativeView());
1243 gtk_window_move(GTK_WINDOW(GetNativeWindow()), screen.x(), screen.y());
1244 // TODO(backer): Remove this driver bug workaround once it is fixed.
1245 gtk_window_resize(GTK_WINDOW(GetNativeWindow()),
1246 screen.width() - 1, screen.height());
1247 #else
1248 gtk_window_maximize(GetNativeWindow()); 1197 gtk_window_maximize(GetNativeWindow());
1249 #endif
1250 } 1198 }
1251 1199
1252 void NativeWidgetGtk::Minimize() { 1200 void NativeWidgetGtk::Minimize() {
1253 gtk_window_iconify(GetNativeWindow()); 1201 gtk_window_iconify(GetNativeWindow());
1254 } 1202 }
1255 1203
1256 bool NativeWidgetGtk::IsMaximized() const { 1204 bool NativeWidgetGtk::IsMaximized() const {
1257 return window_state_ & GDK_WINDOW_STATE_MAXIMIZED; 1205 return window_state_ & GDK_WINDOW_STATE_MAXIMIZED;
1258 } 1206 }
1259 1207
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
1313 // 2) widget_ is not drawable (mapped and visible) 1261 // 2) widget_ is not drawable (mapped and visible)
1314 // 3) If it's never painted before. The first expose event will 1262 // 3) If it's never painted before. The first expose event will
1315 // paint the area that has to be painted. 1263 // paint the area that has to be painted.
1316 if (widget_ && GTK_WIDGET_DRAWABLE(widget_) && painted_) { 1264 if (widget_ && GTK_WIDGET_DRAWABLE(widget_) && painted_) {
1317 gtk_widget_queue_draw_area(widget_, rect.x(), rect.y(), rect.width(), 1265 gtk_widget_queue_draw_area(widget_, rect.x(), rect.y(), rect.width(),
1318 rect.height()); 1266 rect.height());
1319 } 1267 }
1320 } 1268 }
1321 1269
1322 void NativeWidgetGtk::SetCursor(gfx::NativeCursor cursor) { 1270 void NativeWidgetGtk::SetCursor(gfx::NativeCursor cursor) {
1323 #if defined(TOUCH_UI)
1324 if (!ui::TouchFactory::GetInstance()->is_cursor_visible())
1325 cursor = gfx::GetCursor(GDK_BLANK_CURSOR);
1326 #endif
1327 // |window_contents_| is placed on top of |widget_|. So the cursor needs to be 1271 // |window_contents_| is placed on top of |widget_|. So the cursor needs to be
1328 // set on |window_contents_| instead of |widget_|. 1272 // set on |window_contents_| instead of |widget_|.
1329 if (window_contents_) 1273 if (window_contents_)
1330 gdk_window_set_cursor(window_contents_->window, cursor); 1274 gdk_window_set_cursor(window_contents_->window, cursor);
1331 } 1275 }
1332 1276
1333 void NativeWidgetGtk::ClearNativeFocus() { 1277 void NativeWidgetGtk::ClearNativeFocus() {
1334 DCHECK(!child_); 1278 DCHECK(!child_);
1335 if (!GetNativeView()) { 1279 if (!GetNativeView()) {
1336 NOTREACHED(); 1280 NOTREACHED();
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
1709 1653
1710 // Returns true to prevent GtkWindow's default key event handler. 1654 // Returns true to prevent GtkWindow's default key event handler.
1711 return true; 1655 return true;
1712 } 1656 }
1713 1657
1714 gboolean NativeWidgetGtk::OnQueryTooltip(GtkWidget* widget, 1658 gboolean NativeWidgetGtk::OnQueryTooltip(GtkWidget* widget,
1715 gint x, 1659 gint x,
1716 gint y, 1660 gint y,
1717 gboolean keyboard_mode, 1661 gboolean keyboard_mode,
1718 GtkTooltip* tooltip) { 1662 GtkTooltip* tooltip) {
1719 #if defined(TOUCH_UI)
1720 return false; // Tell GTK not to draw tooltips as we draw tooltips in views
1721 #else
1722 return static_cast<TooltipManagerGtk*>(tooltip_manager_.get())-> 1663 return static_cast<TooltipManagerGtk*>(tooltip_manager_.get())->
1723 ShowTooltip(x, y, keyboard_mode, tooltip); 1664 ShowTooltip(x, y, keyboard_mode, tooltip);
1724 #endif
1725 } 1665 }
1726 1666
1727 gboolean NativeWidgetGtk::OnVisibilityNotify(GtkWidget* widget, 1667 gboolean NativeWidgetGtk::OnVisibilityNotify(GtkWidget* widget,
1728 GdkEventVisibility* event) { 1668 GdkEventVisibility* event) {
1729 return false; 1669 return false;
1730 } 1670 }
1731 1671
1732 gboolean NativeWidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) { 1672 gboolean NativeWidgetGtk::OnGrabBrokeEvent(GtkWidget* widget, GdkEvent* event) {
1733 if (!has_pointer_grab_ && !has_keyboard_grab_) { 1673 if (!has_pointer_grab_ && !has_keyboard_grab_) {
1734 // We don't have any grabs; don't attempt to do anything. 1674 // We don't have any grabs; don't attempt to do anything.
(...skipping 14 matching lines...) Expand all
1749 // Mouse grab was broke. 1689 // Mouse grab was broke.
1750 has_pointer_grab_ = false; 1690 has_pointer_grab_ = false;
1751 if (has_keyboard_grab_) { 1691 if (has_keyboard_grab_) {
1752 has_keyboard_grab_ = false; 1692 has_keyboard_grab_ = false;
1753 gdk_keyboard_ungrab(GDK_CURRENT_TIME); 1693 gdk_keyboard_ungrab(GDK_CURRENT_TIME);
1754 } 1694 }
1755 delegate_->OnMouseCaptureLost(); 1695 delegate_->OnMouseCaptureLost();
1756 } 1696 }
1757 ReleaseMouseCapture(); 1697 ReleaseMouseCapture();
1758 1698
1759 #if defined(TOUCH_UI)
1760 ui::TouchFactory::GetInstance()->UngrabTouchDevices(
1761 GDK_WINDOW_XDISPLAY(window_contents()->window));
1762 #endif
1763 return false; // To let other widgets get the event. 1699 return false; // To let other widgets get the event.
1764 } 1700 }
1765 1701
1766 void NativeWidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) { 1702 void NativeWidgetGtk::OnGrabNotify(GtkWidget* widget, gboolean was_grabbed) {
1767 // Sent when gtk_grab_add changes. 1703 // Sent when gtk_grab_add changes.
1768 if (!window_contents_) 1704 if (!window_contents_)
1769 return; // Grab broke after window destroyed, don't try processing it. 1705 return; // Grab broke after window destroyed, don't try processing it.
1770 if (!was_grabbed) // Indicates we've been shadowed (lost grab). 1706 if (!was_grabbed) // Indicates we've been shadowed (lost grab).
1771 HandleGtkGrabBroke(); 1707 HandleGtkGrabBroke();
1772 } 1708 }
(...skipping 17 matching lines...) Expand all
1790 delegate_->OnNativeWidgetDestroyed(); 1726 delegate_->OnNativeWidgetDestroyed();
1791 if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET) 1727 if (ownership_ == Widget::InitParams::NATIVE_WIDGET_OWNS_WIDGET)
1792 delete this; 1728 delete this;
1793 } 1729 }
1794 1730
1795 void NativeWidgetGtk::OnShow(GtkWidget* widget) { 1731 void NativeWidgetGtk::OnShow(GtkWidget* widget) {
1796 delegate_->OnNativeWidgetVisibilityChanged(true); 1732 delegate_->OnNativeWidgetVisibilityChanged(true);
1797 } 1733 }
1798 1734
1799 void NativeWidgetGtk::OnMap(GtkWidget* widget) { 1735 void NativeWidgetGtk::OnMap(GtkWidget* widget) {
1800 #if defined(TOUCH_UI)
1801 // Force an expose event to trigger OnPaint for touch. This is
1802 // a workaround for a bug that X Expose event does not trigger
1803 // Gdk's expose signal. This happens when you try to open views menu
1804 // while a virtual keyboard gets kicked in or out. This seems to be
1805 // a bug in message_pump_x.cc as we do get X Expose event but
1806 // it doesn't trigger gtk's expose signal. We're not going to fix this
1807 // as we're removing gtk and migrating to new compositor.
1808 gdk_window_process_all_updates();
1809 #endif
1810 } 1736 }
1811 1737
1812 void NativeWidgetGtk::OnHide(GtkWidget* widget) { 1738 void NativeWidgetGtk::OnHide(GtkWidget* widget) {
1813 delegate_->OnNativeWidgetVisibilityChanged(false); 1739 delegate_->OnNativeWidgetVisibilityChanged(false);
1814 } 1740 }
1815 1741
1816 gboolean NativeWidgetGtk::OnWindowStateEvent(GtkWidget* widget, 1742 gboolean NativeWidgetGtk::OnWindowStateEvent(GtkWidget* widget,
1817 GdkEventWindowState* event) { 1743 GdkEventWindowState* event) {
1818 if (GetWidget()->non_client_view() && 1744 if (GetWidget()->non_client_view() &&
1819 !(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN)) { 1745 !(event->new_window_state & GDK_WINDOW_STATE_WITHDRAWN)) {
(...skipping 474 matching lines...) Expand 10 before | Expand all | Expand 10 after
2294 button_pressed = event->type == GDK_BUTTON_PRESS || 2220 button_pressed = event->type == GDK_BUTTON_PRESS ||
2295 event->type == GDK_2BUTTON_PRESS || 2221 event->type == GDK_2BUTTON_PRESS ||
2296 event->type == GDK_3BUTTON_PRESS; 2222 event->type == GDK_3BUTTON_PRESS;
2297 gdk_event_free(event); 2223 gdk_event_free(event);
2298 } 2224 }
2299 return button_pressed; 2225 return button_pressed;
2300 } 2226 }
2301 2227
2302 } // namespace internal 2228 } // namespace internal
2303 } // namespace views 2229 } // namespace views
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698