-
Mark McLoughlin authored
2003-04-01 Mark McLoughlin <mark@skynet.ie> Fix long standing bug where size changes affected applet positions. E.g. make the panel bigger then smaller and there used to be gaps between all your launchers, changing the font size used to move the clock applet, adding an icon to the notification area and then removing it caused it to change position etc. * panel-widget.h: add another member to AppletData which tracks the actual position as it currently appears on the panel. AppletData:pos now corresponds to the user specified position as opposed to the constrained position. * panel-widget.c: (emit_applet_moved): impl. (panel_widget_cremove): fixup. (panel_widget_is_applet_stuck): re-write for clarity. (get_size_from_hints): respect the min_cells hint here. (allocate_dirty_child): use the constrained applet position and don't do any actual moving. (panel_widget_switch_applet_right), (panel_widget_switch_applet_left), (panel_widget_get_right_switch_pos), (panel_widget_get_left_switch_pos), (panel_widget_switch_move), (push_applet_right), (push_applet_left), (panel_widget_push_move), (panel_widget_right_stick): use the constrained position when figuring out where to move things and emit the moved signal at when applets have been moved. (panel_widget_size_allocate): don't make size changes affect the user specified position. Also don't saze the constrained position. (panel_widget_applet_drag_start_no_grab), (walk_up_to), (is_in_applet), (panel_widget_get_free_spot): upd. to use the constrained position as appropriate. (panel_widget_nice_move): emit the moved signal. (panel_widget_applet_move_to_cursor), (panel_widget_add): use the constrained positionl. (panel_widget_reparent): emit the moved signal.
963383b6