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

Unified Diff: panels/panel_manager.cc

Issue 6902072: wm: Update a lot of code to use structs from geometry.h. (Closed) Base URL: ssh://gitrw.chromium.org:9222/window_manager.git@master
Patch Set: move override-redirect stacking and visibility into Window Created 9 years, 8 months 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 side-by-side diff with in-line comments
Download patch
Index: panels/panel_manager.cc
diff --git a/panels/panel_manager.cc b/panels/panel_manager.cc
index 9820e21b743184ab35dfc976defac620c0ad830a..9c270b0ff52bc190f81e06a7e8f93770572411b3 100644
--- a/panels/panel_manager.cc
+++ b/panels/panel_manager.cc
@@ -242,11 +242,10 @@ void PanelManager::HandleWindowUnmap(Window* win) {
CHECK(panels_.erase(panel->content_xid()) == 1);
}
-void PanelManager::HandleWindowConfigureRequest(
- Window* win, int req_x, int req_y, int req_width, int req_height) {
+void PanelManager::HandleWindowConfigureRequest(Window* win,
+ const Rect& requested_bounds) {
if (Panel* owner_panel = GetPanelOwningTransientWindow(*win)) {
- owner_panel->HandleTransientWindowConfigureRequest(
- win, req_x, req_y, req_width, req_height);
+ owner_panel->HandleTransientWindowConfigureRequest(win, requested_bounds);
return;
}
@@ -272,31 +271,29 @@ void PanelManager::HandleWindowConfigureRequest(
return;
}
- if (req_width != panel->content_width() ||
- req_height != panel->content_height()) {
- container->HandlePanelResizeRequest(panel, req_width, req_height);
- } else {
+ if (requested_bounds.size() != panel->content_size())
+ container->HandlePanelResizeRequest(panel, requested_bounds.size());
+ else
win->SendSyntheticConfigureNotify();
- }
}
void PanelManager::HandleButtonPress(XWindow xid,
- int x, int y,
- int x_root, int y_root,
+ const Point& relative_pos,
+ const Point& absolute_pos,
int button,
XTime timestamp) {
// If this is a container's input window, notify the container.
PanelContainer* container = GetContainerOwningInputWindow(xid);
if (container) {
container->HandleInputWindowButtonPress(
- xid, x, y, x_root, y_root, button, timestamp);
+ xid, relative_pos, absolute_pos, button, timestamp);
return;
}
// If this is a panel's input window, notify the panel.
Panel* panel = GetPanelOwningInputWindow(xid);
if (panel) {
- panel->HandleInputWindowButtonPress(xid, x, y, button, timestamp);
+ panel->HandleInputWindowButtonPress(xid, relative_pos, button, timestamp);
return;
}
@@ -321,8 +318,8 @@ void PanelManager::HandleButtonPress(XWindow xid,
}
void PanelManager::HandleButtonRelease(XWindow xid,
- int x, int y,
- int x_root, int y_root,
+ const Point& relative_pos,
+ const Point& absolute_pos,
int button,
XTime timestamp) {
// We only care if button releases happened in container or panel input
@@ -331,25 +328,25 @@ void PanelManager::HandleButtonRelease(XWindow xid,
PanelContainer* container = GetContainerOwningInputWindow(xid);
if (container) {
container->HandleInputWindowButtonRelease(
- xid, x, y, x_root, y_root, button, timestamp);
+ xid, relative_pos, absolute_pos, button, timestamp);
return;
}
Panel* panel = GetPanelOwningInputWindow(xid);
if (panel) {
- panel->HandleInputWindowButtonRelease(xid, x, y, button, timestamp);
+ panel->HandleInputWindowButtonRelease(xid, relative_pos, button, timestamp);
return;
}
}
void PanelManager::HandlePointerEnter(XWindow xid,
- int x, int y,
- int x_root, int y_root,
+ const Point& relative_pos,
+ const Point& absolute_pos,
XTime timestamp) {
PanelContainer* container = GetContainerOwningInputWindow(xid);
if (container) {
container->HandleInputWindowPointerEnter(
- xid, x, y, x_root, y_root, timestamp);
+ xid, relative_pos, absolute_pos, timestamp);
return;
}
@@ -367,22 +364,22 @@ void PanelManager::HandlePointerEnter(XWindow xid,
}
void PanelManager::HandlePointerLeave(XWindow xid,
- int x, int y,
- int x_root, int y_root,
+ const Point& relative_pos,
+ const Point& absolute_pos,
XTime timestamp) {
PanelContainer* container = GetContainerOwningInputWindow(xid);
if (container)
container->HandleInputWindowPointerLeave(
- xid, x, y, x_root, y_root, timestamp);
+ xid, relative_pos, absolute_pos, timestamp);
}
void PanelManager::HandlePointerMotion(XWindow xid,
- int x, int y,
- int x_root, int y_root,
+ const Point& relative_pos,
+ const Point& absolute_pos,
XTime timestamp) {
Panel* panel = GetPanelOwningInputWindow(xid);
if (panel)
- panel->HandleInputWindowPointerMotion(xid, x, y);
+ panel->HandleInputWindowPointerMotion(xid, relative_pos);
}
void PanelManager::HandleChromeMessage(const WmIpc::Message& msg) {
@@ -418,10 +415,11 @@ void PanelManager::HandleChromeMessage(const WmIpc::Message& msg) {
dragged_panel_event_coalescer_->Start();
// We want the right edge of the panel, but pre-IPC-version-1 Chrome
// sends us the left edge of the titlebar instead.
- int drag_x = (wm()->wm_ipc_version() >= 1) ?
- msg.param(1) : msg.param(1) + panel->titlebar_width();
- int drag_y = msg.param(2);
- dragged_panel_event_coalescer_->StorePosition(drag_x, drag_y);
+ Point drag_pos(
+ (wm()->wm_ipc_version() >= 1) ?
+ msg.param(1) : msg.param(1) + panel->titlebar_width(),
+ msg.param(2));
+ dragged_panel_event_coalescer_->StorePosition(drag_pos);
break;
}
case chromeos::WM_IPC_MESSAGE_WM_NOTIFY_PANEL_DRAG_COMPLETE: {
@@ -607,19 +605,17 @@ void PanelManager::HandlePeriodicPanelDragMotion() {
if (!dragged_panel_)
return;
- const int x = dragged_panel_event_coalescer_->x();
- const int y = dragged_panel_event_coalescer_->y();
+ const Point pos = dragged_panel_event_coalescer_->position();
bool container_handled_drag = false;
bool panel_was_detached = false;
PanelContainer* container = GetContainerForPanel(*dragged_panel_);
if (container) {
- if (container->HandleNotifyPanelDraggedMessage(dragged_panel_, x, y)) {
+ if (container->HandleNotifyPanelDraggedMessage(dragged_panel_, pos)) {
container_handled_drag = true;
} else {
DLOG(INFO) << "Container " << container << " told us to detach panel "
- << dragged_panel_->xid_str()
- << " at (" << x << ", " << y << ")";
+ << dragged_panel_->xid_str() << " at " << pos;
RemovePanelFromContainer(dragged_panel_, container);
panel_was_detached = true;
}
@@ -636,21 +632,19 @@ void PanelManager::HandlePeriodicPanelDragMotion() {
bool panel_was_reattached = false;
for (vector<PanelContainer*>::iterator it = containers_.begin();
it != containers_.end(); ++it) {
- if ((*it)->ShouldAddDraggedPanel(dragged_panel_, x, y)) {
+ if ((*it)->ShouldAddDraggedPanel(dragged_panel_, pos)) {
DLOG(INFO) << "Container " << *it << " told us to attach panel "
- << dragged_panel_->xid_str()
- << " at (" << x << ", " << y << ")";
+ << dragged_panel_->xid_str() << " at " << pos;
AddPanelToContainer(dragged_panel_,
*it,
PanelContainer::PANEL_SOURCE_DRAGGED);
- CHECK((*it)->HandleNotifyPanelDraggedMessage(dragged_panel_, x, y));
+ CHECK((*it)->HandleNotifyPanelDraggedMessage(dragged_panel_, pos));
panel_was_reattached = true;
break;
}
}
if (!panel_was_reattached) {
- dragged_panel_->Move(
- x, y, panel_was_detached ? kDetachPanelAnimMs : 0);
+ dragged_panel_->Move(pos, panel_was_detached ? kDetachPanelAnimMs : 0);
}
}
}
« no previous file with comments | « panels/panel_manager.h ('k') | panels/panel_manager_test.cc » ('j') | window.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698