Click Mouse Placement is BACK!#!#
This commit is contained in:
parent
94d86896b4
commit
daaac0dfe2
5 changed files with 59 additions and 24 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue