Index: chrome/browser/ui/panels/panel_browser_window_gtk.cc |
diff --git a/chrome/browser/ui/panels/panel_browser_window_gtk.cc b/chrome/browser/ui/panels/panel_browser_window_gtk.cc |
index f84b84fdcff9c8eb8ea2f7d482ee62665782d5e7..e806bf7d08db971adade6146f1c56d944ada6f7f 100644 |
--- a/chrome/browser/ui/panels/panel_browser_window_gtk.cc |
+++ b/chrome/browser/ui/panels/panel_browser_window_gtk.cc |
@@ -482,6 +482,10 @@ void PanelBrowserWindowGtk::SetPanelAppIconVisibility(bool visible) { |
return; |
} |
+void PanelBrowserWindowGtk::SetPanelAlwaysOnTop(bool on_top) { |
+ gtk_window_set_keep_above(window(), on_top); |
+} |
+ |
gfx::Size PanelBrowserWindowGtk::WindowSizeFromContentSize( |
const gfx::Size& content_size) const { |
gfx::Size frame = GetNonClientFrameSize(); |
@@ -551,11 +555,11 @@ void PanelBrowserWindowGtk::DidProcessEvent(GdkEvent* event) { |
// it here to reduce the reference count. |
gtk_target_list_unref(list); |
} |
- panel_->manager()->StartDragging(panel_.get()); |
+ panel_->manager()->StartDragging(panel_.get(), gfx::Point(old_x, old_y)); |
} |
if (drag_widget_) { |
- panel_->manager()->Drag(new_x - old_x, new_y - old_y); |
+ panel_->manager()->Drag(gfx::Point(new_x, new_y)); |
gdk_event_free(last_mouse_down_); |
last_mouse_down_ = gdk_event_copy(event); |
} |
@@ -777,9 +781,9 @@ class NativePanelTestingGtk : public NativePanelTesting { |
private: |
virtual void PressLeftMouseButtonTitlebar( |
- const gfx::Point& point) OVERRIDE; |
+ const gfx::Point& mouse_location) OVERRIDE; |
virtual void ReleaseMouseButtonTitlebar() OVERRIDE; |
- virtual void DragTitlebar(int delta_x, int delta_y) OVERRIDE; |
+ virtual void DragTitlebar(const gfx::Point& mouse_location) OVERRIDE; |
virtual void CancelDragTitlebar() OVERRIDE; |
virtual void FinishDragTitlebar() OVERRIDE; |
virtual bool VerifyDrawingAttention() const OVERRIDE; |
@@ -803,7 +807,7 @@ NativePanelTestingGtk::NativePanelTestingGtk( |
} |
void NativePanelTestingGtk::PressLeftMouseButtonTitlebar( |
- const gfx::Point& point) { |
+ const gfx::Point& mouse_location) { |
// If there is an animation, wait for it to finish as we don't handle button |
// clicks while animation is in progress. |
while (panel_browser_window_gtk_->IsAnimatingBounds()) |
@@ -811,8 +815,8 @@ void NativePanelTestingGtk::PressLeftMouseButtonTitlebar( |
GdkEvent* event = gdk_event_new(GDK_BUTTON_PRESS); |
event->button.button = 1; |
- event->button.x_root = point.x(); |
- event->button.y_root = point.y(); |
+ event->button.x_root = mouse_location.x(); |
+ event->button.y_root = mouse_location.y(); |
panel_browser_window_gtk_->OnTitlebarButtonPressEvent( |
panel_browser_window_gtk_->titlebar_widget(), |
reinterpret_cast<GdkEventButton*>(event)); |
@@ -829,15 +833,13 @@ void NativePanelTestingGtk::ReleaseMouseButtonTitlebar() { |
MessageLoopForUI::current()->RunAllPending(); |
} |
-void NativePanelTestingGtk::DragTitlebar(int delta_x, int delta_y) { |
+void NativePanelTestingGtk::DragTitlebar(const gfx::Point& mouse_location) { |
// Prevent extra unwanted signals and focus grabs. |
panel_browser_window_gtk_->system_drag_disabled_for_testing_ = true; |
GdkEvent* event = gdk_event_new(GDK_MOTION_NOTIFY); |
- gdk_event_get_root_coords(panel_browser_window_gtk_->last_mouse_down_, |
- &event->motion.x_root, &event->motion.y_root); |
- event->motion.x_root += delta_x; |
- event->motion.y_root += delta_y; |
+ event->motion.x_root = mouse_location.x(); |
+ event->motion.y_root = mouse_location.y(); |
panel_browser_window_gtk_->DidProcessEvent(event); |
gdk_event_free(event); |
MessageLoopForUI::current()->RunAllPending(); |