fixed tooltip_adjust_geometry with multi monitor
git-svn-id: http://tint2.googlecode.com/svn/trunk@246 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
e8b4fb6bbc
commit
140f32e28e
1 changed files with 11 additions and 7 deletions
|
@ -146,7 +146,10 @@ void tooltip_update_geometry()
|
||||||
else if (panel_position & LEFT)
|
else if (panel_position & LEFT)
|
||||||
x = panel->posx + panel->area.width;
|
x = panel->posx + panel->area.width;
|
||||||
else
|
else
|
||||||
x = panel->posx - width;
|
x = panel->posx - width;
|
||||||
|
|
||||||
|
//printf("tooltip_update_geometry x_root %d, y_root %d\n", x, y);
|
||||||
|
//printf(" panel posx %d, posy %d\n", panel->posx, panel->posy);
|
||||||
g_object_unref(layout);
|
g_object_unref(layout);
|
||||||
cairo_destroy(c);
|
cairo_destroy(c);
|
||||||
cairo_surface_destroy(cs);
|
cairo_surface_destroy(cs);
|
||||||
|
@ -160,8 +163,8 @@ void tooltip_adjust_geometry()
|
||||||
|
|
||||||
int min_x, min_y, max_width, max_height;
|
int min_x, min_y, max_width, max_height;
|
||||||
Panel* panel = g_tooltip.task->area.panel;
|
Panel* panel = g_tooltip.task->area.panel;
|
||||||
int screen_width = server.monitor[panel->monitor].width;
|
int screen_width = server.monitor[panel->monitor].x + server.monitor[panel->monitor].width;
|
||||||
int screen_height = server.monitor[panel->monitor].height;
|
int screen_height = server.monitor[panel->monitor].y + server.monitor[panel->monitor].height;
|
||||||
if ( x+width <= screen_width && y+height <= screen_height && x>=0 && y>=0)
|
if ( x+width <= screen_width && y+height <= screen_height && x>=0 && y>=0)
|
||||||
return; // no adjustment needed
|
return; // no adjustment needed
|
||||||
|
|
||||||
|
@ -184,10 +187,10 @@ void tooltip_adjust_geometry()
|
||||||
min_x=0;
|
min_x=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x+width > server.monitor[panel->monitor].width)
|
if (x+width > server.monitor[panel->monitor].x + server.monitor[panel->monitor].width)
|
||||||
x = server.monitor[panel->monitor].width-width;
|
x = server.monitor[panel->monitor].x + server.monitor[panel->monitor].width - width;
|
||||||
if ( y+height>server.monitor[panel->monitor].height)
|
if ( y+height > server.monitor[panel->monitor].y + server.monitor[panel->monitor].height)
|
||||||
y = server.monitor[panel->monitor].height-height;
|
y = server.monitor[panel->monitor].y + server.monitor[panel->monitor].height - height;
|
||||||
|
|
||||||
if (x<min_x)
|
if (x<min_x)
|
||||||
x=min_x;
|
x=min_x;
|
||||||
|
@ -197,6 +200,7 @@ void tooltip_adjust_geometry()
|
||||||
y=min_y;
|
y=min_y;
|
||||||
if (height>max_height)
|
if (height>max_height)
|
||||||
height=max_height;
|
height=max_height;
|
||||||
|
//printf("tooltip_adjust_geometry x_root %d, y_root %d\n", x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tooltip_update()
|
void tooltip_update()
|
||||||
|
|
Loading…
Reference in a new issue