| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/ui/libgtk2ui/gtk2_util.h" | 5 #include "chrome/browser/ui/libgtk2ui/gtk2_util.h" |
| 6 | 6 |
| 7 #include <gdk/gdk.h> | 7 #include <gdk/gdk.h> |
| 8 #include <gdk/gdkx.h> | 8 #include <gdk/gdkx.h> |
| 9 #include <gtk/gtk.h> | 9 #include <gtk/gtk.h> |
| 10 | 10 |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 flags |= (state & GDK_SHIFT_MASK) ? ui::EF_SHIFT_DOWN : ui::EF_NONE; | 97 flags |= (state & GDK_SHIFT_MASK) ? ui::EF_SHIFT_DOWN : ui::EF_NONE; |
| 98 flags |= (state & GDK_MOD1_MASK) ? ui::EF_ALT_DOWN : ui::EF_NONE; | 98 flags |= (state & GDK_MOD1_MASK) ? ui::EF_ALT_DOWN : ui::EF_NONE; |
| 99 flags |= (state & GDK_BUTTON1_MASK) ? ui::EF_LEFT_MOUSE_BUTTON : ui::EF_NONE; | 99 flags |= (state & GDK_BUTTON1_MASK) ? ui::EF_LEFT_MOUSE_BUTTON : ui::EF_NONE; |
| 100 flags |= | 100 flags |= |
| 101 (state & GDK_BUTTON2_MASK) ? ui::EF_MIDDLE_MOUSE_BUTTON : ui::EF_NONE; | 101 (state & GDK_BUTTON2_MASK) ? ui::EF_MIDDLE_MOUSE_BUTTON : ui::EF_NONE; |
| 102 flags |= (state & GDK_BUTTON3_MASK) ? ui::EF_RIGHT_MOUSE_BUTTON : ui::EF_NONE; | 102 flags |= (state & GDK_BUTTON3_MASK) ? ui::EF_RIGHT_MOUSE_BUTTON : ui::EF_NONE; |
| 103 return flags; | 103 return flags; |
| 104 } | 104 } |
| 105 | 105 |
| 106 void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent) { | 106 void SetGtkTransientForAura(GtkWidget* dialog, aura::Window* parent) { |
| 107 if (!parent) | 107 if (!parent || !parent->GetHost()) |
| 108 return; | 108 return; |
| 109 | 109 |
| 110 gtk_widget_realize(dialog); | 110 gtk_widget_realize(dialog); |
| 111 GdkWindow* gdk_window = gtk_widget_get_window(dialog); | 111 GdkWindow* gdk_window = gtk_widget_get_window(dialog); |
| 112 | 112 |
| 113 // TODO(erg): Check to make sure we're using X11 if wayland or some other | 113 // TODO(erg): Check to make sure we're using X11 if wayland or some other |
| 114 // display server ever happens. Otherwise, this will crash. | 114 // display server ever happens. Otherwise, this will crash. |
| 115 XSetTransientForHint(GDK_WINDOW_XDISPLAY(gdk_window), | 115 XSetTransientForHint(GDK_WINDOW_XDISPLAY(gdk_window), |
| 116 GDK_WINDOW_XID(gdk_window), | 116 GDK_WINDOW_XID(gdk_window), |
| 117 parent->GetHost()->GetAcceleratedWidget()); | 117 parent->GetHost()->GetAcceleratedWidget()); |
| 118 | 118 |
| 119 // We also set the |parent| as a property of |dialog|, so that we can unlink | 119 // We also set the |parent| as a property of |dialog|, so that we can unlink |
| 120 // the two later. | 120 // the two later. |
| 121 g_object_set_data(G_OBJECT(dialog), kAuraTransientParent, parent); | 121 g_object_set_data(G_OBJECT(dialog), kAuraTransientParent, parent); |
| 122 } | 122 } |
| 123 | 123 |
| 124 aura::Window* GetAuraTransientParent(GtkWidget* dialog) { | 124 aura::Window* GetAuraTransientParent(GtkWidget* dialog) { |
| 125 return reinterpret_cast<aura::Window*>( | 125 return reinterpret_cast<aura::Window*>( |
| 126 g_object_get_data(G_OBJECT(dialog), kAuraTransientParent)); | 126 g_object_get_data(G_OBJECT(dialog), kAuraTransientParent)); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void ClearAuraTransientParent(GtkWidget* dialog) { | 129 void ClearAuraTransientParent(GtkWidget* dialog) { |
| 130 g_object_set_data(G_OBJECT(dialog), kAuraTransientParent, NULL); | 130 g_object_set_data(G_OBJECT(dialog), kAuraTransientParent, NULL); |
| 131 } | 131 } |
| 132 | 132 |
| 133 } // namespace libgtk2ui | 133 } // namespace libgtk2ui |
| OLD | NEW |