Click Mouse Placement is BACK!#!#

This commit is contained in:
Dana Jansens 2002-07-16 05:00:09 +00:00
parent 94d86896b4
commit daaac0dfe2
5 changed files with 59 additions and 24 deletions

View file

@ -221,6 +221,8 @@ Configmenu::Placementmenu::Placementmenu(Configmenu *cm):
BScreen::CascadePlacement); BScreen::CascadePlacement);
insert(i18n(ConfigmenuSet, ConfigmenuUnderMouse, "Under Mouse Placement"), insert(i18n(ConfigmenuSet, ConfigmenuUnderMouse, "Under Mouse Placement"),
BScreen::UnderMousePlacement); BScreen::UnderMousePlacement);
insert(i18n(ConfigmenuSet, ConfigmenuClickMouse, "Click Mouse Placement"),
BScreen::ClickMousePlacement);
insert(i18n(ConfigmenuSet, ConfigmenuLeftRight, "Left to Right"), insert(i18n(ConfigmenuSet, ConfigmenuLeftRight, "Left to Right"),
BScreen::LeftRight); BScreen::LeftRight);
insert(i18n(ConfigmenuSet, ConfigmenuRightLeft, "Right to Left"), insert(i18n(ConfigmenuSet, ConfigmenuRightLeft, "Right to Left"),
@ -246,23 +248,24 @@ void Configmenu::Placementmenu::setValues(void) {
setItemSelected(1, placement == BScreen::ColSmartPlacement); setItemSelected(1, placement == BScreen::ColSmartPlacement);
setItemSelected(2, placement == BScreen::CascadePlacement); setItemSelected(2, placement == BScreen::CascadePlacement);
setItemSelected(3, placement == BScreen::UnderMousePlacement); setItemSelected(3, placement == BScreen::UnderMousePlacement);
setItemSelected(4, placement == BScreen::ClickMousePlacement);
bool rl = (getScreen()->getRowPlacementDirection() == BScreen::LeftRight), bool rl = (getScreen()->getRowPlacementDirection() == BScreen::LeftRight),
tb = (getScreen()->getColPlacementDirection() == BScreen::TopBottom), tb = (getScreen()->getColPlacementDirection() == BScreen::TopBottom),
e = placement != BScreen::UnderMousePlacement; e = placement != BScreen::UnderMousePlacement;
setItemSelected(4, rl); setItemSelected(5, rl);
setItemSelected(5, ! rl); setItemSelected(6, ! rl);
setItemEnabled(4, e);
setItemEnabled(5, e); setItemEnabled(5, e);
setItemSelected(6, tb);
setItemSelected(7, ! tb);
setItemEnabled(6, e); setItemEnabled(6, e);
setItemSelected(7, tb);
setItemSelected(8, ! tb);
setItemEnabled(7, e); setItemEnabled(7, e);
setItemEnabled(8, e);
setItemSelected(8, getScreen()->getPlaceIgnoreShaded()); setItemSelected(9, getScreen()->getPlaceIgnoreShaded());
setItemSelected(9, getScreen()->getPlaceIgnoreMaximized()); setItemSelected(10, getScreen()->getPlaceIgnoreMaximized());
} }
@ -289,10 +292,11 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) {
setItemSelected(1, false); setItemSelected(1, false);
setItemSelected(2, false); setItemSelected(2, false);
setItemSelected(3, false); setItemSelected(3, false);
setItemEnabled(4, true); setItemSelected(4, false);
setItemEnabled(5, true); setItemEnabled(5, true);
setItemEnabled(6, true); setItemEnabled(6, true);
setItemEnabled(7, true); setItemEnabled(7, true);
setItemEnabled(8, true);
break; break;
@ -303,10 +307,11 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) {
setItemSelected(1, true); setItemSelected(1, true);
setItemSelected(2, false); setItemSelected(2, false);
setItemSelected(3, false); setItemSelected(3, false);
setItemEnabled(4, true); setItemSelected(4, false);
setItemEnabled(5, true); setItemEnabled(5, true);
setItemEnabled(6, true); setItemEnabled(6, true);
setItemEnabled(7, true); setItemEnabled(7, true);
setItemEnabled(8, true);
break; break;
@ -317,10 +322,11 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) {
setItemSelected(1, false); setItemSelected(1, false);
setItemSelected(2, true); setItemSelected(2, true);
setItemSelected(3, false); setItemSelected(3, false);
setItemEnabled(4, true); setItemSelected(4, false);
setItemEnabled(5, true); setItemEnabled(5, true);
setItemEnabled(6, true); setItemEnabled(6, true);
setItemEnabled(7, true); setItemEnabled(7, true);
setItemEnabled(8, true);
break; break;
@ -331,49 +337,65 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) {
setItemSelected(1, false); setItemSelected(1, false);
setItemSelected(2, false); setItemSelected(2, false);
setItemSelected(3, true); setItemSelected(3, true);
setItemEnabled(4, false); setItemSelected(4, false);
setItemEnabled(5, false); setItemEnabled(5, false);
setItemEnabled(6, false); setItemEnabled(6, false);
setItemEnabled(7, false); setItemEnabled(7, false);
setItemEnabled(8, false);
break;
case BScreen::ClickMousePlacement:
getScreen()->savePlacementPolicy(item->function());
setItemSelected(0, false);
setItemSelected(1, false);
setItemSelected(2, false);
setItemSelected(3, false);
setItemSelected(4, true);
setItemEnabled(5, false);
setItemEnabled(6, false);
setItemEnabled(7, false);
setItemEnabled(8, false);
break; break;
case BScreen::LeftRight: case BScreen::LeftRight:
getScreen()->saveRowPlacementDirection(BScreen::LeftRight); getScreen()->saveRowPlacementDirection(BScreen::LeftRight);
setItemSelected(4, true); setItemSelected(5, true);
setItemSelected(5, false); setItemSelected(6, false);
break; break;
case BScreen::RightLeft: case BScreen::RightLeft:
getScreen()->saveRowPlacementDirection(BScreen::RightLeft); getScreen()->saveRowPlacementDirection(BScreen::RightLeft);
setItemSelected(4, false); setItemSelected(5, false);
setItemSelected(5, true); setItemSelected(6, true);
break; break;
case BScreen::TopBottom: case BScreen::TopBottom:
getScreen()->saveColPlacementDirection(BScreen::TopBottom); getScreen()->saveColPlacementDirection(BScreen::TopBottom);
setItemSelected(6, true); setItemSelected(7, true);
setItemSelected(7, false); setItemSelected(8, false);
break; break;
case BScreen::BottomTop: case BScreen::BottomTop:
getScreen()->saveColPlacementDirection(BScreen::BottomTop); getScreen()->saveColPlacementDirection(BScreen::BottomTop);
setItemSelected(6, false); setItemSelected(7, false);
setItemSelected(7, true); setItemSelected(8, true);
break; break;
case BScreen::IgnoreShaded: case BScreen::IgnoreShaded:
getScreen()->savePlaceIgnoreShaded(! getScreen()->getPlaceIgnoreShaded()); getScreen()->savePlaceIgnoreShaded(! getScreen()->getPlaceIgnoreShaded());
setItemSelected(8, getScreen()->getPlaceIgnoreShaded()); setItemSelected(9, getScreen()->getPlaceIgnoreShaded());
break; break;
@ -381,7 +403,7 @@ void Configmenu::Placementmenu::itemSelected(int button, unsigned int index) {
getScreen()-> getScreen()->
savePlaceIgnoreMaximized(! getScreen()->getPlaceIgnoreMaximized()); savePlaceIgnoreMaximized(! getScreen()->getPlaceIgnoreMaximized());
setItemSelected(9, getScreen()->getPlaceIgnoreMaximized()); setItemSelected(10, getScreen()->getPlaceIgnoreMaximized());
break; break;
} }

View file

@ -444,6 +444,8 @@ void BScreen::savePlacementPolicy(int p) {
const char *placement; const char *placement;
switch (resource.placement_policy) { switch (resource.placement_policy) {
case CascadePlacement: placement = "CascadePlacement"; break; case CascadePlacement: placement = "CascadePlacement"; break;
case UnderMousePlacement: placement = "UnderMousePlacement"; break;
case ClickMousePlacement: placement = "ClickMousePlacement"; break;
case ColSmartPlacement: placement = "ColSmartPlacement"; break; case ColSmartPlacement: placement = "ColSmartPlacement"; break;
case RowSmartPlacement: default: placement = "RowSmartPlacement"; break; case RowSmartPlacement: default: placement = "RowSmartPlacement"; break;
} }
@ -647,6 +649,10 @@ void BScreen::load_rc(void) {
if (config->getValue(screenstr + "windowPlacement", s)) { if (config->getValue(screenstr + "windowPlacement", s)) {
if (s == "CascadePlacement") if (s == "CascadePlacement")
resource.placement_policy = CascadePlacement; resource.placement_policy = CascadePlacement;
else if (s == "UnderMousePlacement")
resource.placement_policy = UnderMousePlacement;
else if (s == "ClickMousePlacement")
resource.placement_policy = UnderMousePlacement;
else if (s == "ColSmartPlacement") else if (s == "ColSmartPlacement")
resource.placement_policy = ColSmartPlacement; resource.placement_policy = ColSmartPlacement;
else //if (s == "RowSmartPlacement") else //if (s == "RowSmartPlacement")

View file

@ -190,8 +190,8 @@ private:
void updateWorkArea(void); void updateWorkArea(void);
public: public:
enum { RowSmartPlacement = 1, ColSmartPlacement, CascadePlacement, enum { RowSmartPlacement = 1, ColSmartPlacement, CascadePlacement,
UnderMousePlacement, LeftRight, RightLeft, TopBottom, BottomTop, UnderMousePlacement, ClickMousePlacement, LeftRight, RightLeft,
IgnoreShaded, IgnoreMaximized }; TopBottom, BottomTop, IgnoreShaded, IgnoreMaximized };
enum { RoundBullet = 1, TriangleBullet, SquareBullet, NoBullet }; enum { RoundBullet = 1, TriangleBullet, SquareBullet, NoBullet };
enum { Restart = 1, RestartOther, Exit, Shutdown, Execute, Reconfigure, enum { Restart = 1, RestartOther, Exit, Shutdown, Execute, Reconfigure,
WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise, WindowShade, WindowIconify, WindowMaximize, WindowClose, WindowRaise,

View file

@ -2542,6 +2542,12 @@ void BlackboxWindow::mapRequestEvent(const XMapRequestEvent *re) {
XSync(blackbox->getXDisplay(), False); // make sure the frame is mapped.. XSync(blackbox->getXDisplay(), False); // make sure the frame is mapped..
setInputFocus(); setInputFocus();
} }
int x, y, rx, ry;
Window c, r;
unsigned int m;
XQueryPointer(screen->getBlackbox()->getXDisplay(), screen->getRootWindow(),
&r, &c, &rx, &ry, &x, &y, &m);
beginMove(rx, ry);
break; break;
} }
} }

View file

@ -694,6 +694,7 @@ void Workspace::placeWindow(BlackboxWindow *win) {
placed = smartPlacement(new_win, availableArea); placed = smartPlacement(new_win, availableArea);
break; break;
case BScreen::UnderMousePlacement: case BScreen::UnderMousePlacement:
case BScreen::ClickMousePlacement:
placed = underMousePlacement(new_win, availableArea); placed = underMousePlacement(new_win, availableArea);
default: default:
break; // handled below break; // handled below