diff --git a/kwinbindings.cpp b/kwinbindings.cpp index 35021474c2..fe4af0b5e9 100644 --- a/kwinbindings.cpp +++ b/kwinbindings.cpp @@ -9,4 +9,8 @@ keys->insertItem(i18n("Window operations menu"), "Pop-up window operations menu" ,"ALT+F3"); - keys->insertItem(i18n("Window close"),"Window close" ,"ALT+F4"); + keys->insertItem(i18n("Window close"),"Window close", "ALT+F4"); + keys->insertItem(i18n("Window maximize"),"Window maximize", ""); + keys->insertItem(i18n("Window maximize vertical"),"Window maximize vertical", ""); + keys->insertItem(i18n("Window maximize horizontal"),"Window maximize horizontal", ""); + keys->insertItem(i18n("Window iconify"),"Window iconify", ""); diff --git a/workspace.cpp b/workspace.cpp index 13efeff3a3..e7f1bb1677 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -1495,6 +1495,10 @@ void Workspace::createKeybindings(){ keys->connectItem( "Pop-up window operations menu", this, SLOT( slotWindowOperations() ) ); keys->connectItem( "Window close", this, SLOT( slotWindowClose() ) ); + keys->connectItem( "Window maximize", this, SLOT( slotWindowMaximize() ) ); + keys->connectItem( "Window maximize horizontal", this, SLOT( slotWindowMaximizeHorizontal() ) ); + keys->connectItem( "Window maximize vertical", this, SLOT( slotWindowMaximizeVertical() ) ); + keys->connectItem( "Window iconify", this, SLOT( slotWindowIconify() ) ); keys->readSettings(); } @@ -1524,6 +1528,28 @@ void Workspace::slotSwitchDesktop8(){ setCurrentDesktop(8); } + +void Workspace::slotWindowMaximize() +{ + if ( popup_client ) + popup_client->maximize( Client::MaximizeFull ); +} +void Workspace::slotWindowMaximizeVertical() +{ + if ( popup_client ) + popup_client->maximize( Client::MaximizeVertical ); +} +void Workspace::slotWindowMaximizeHorizontal() +{ + if ( popup_client ) + popup_client->maximize( Client::MaximizeHorizontal ); +} +void Workspace::slotWindowIconify() +{ + if ( popup_client ) + popup_client->iconify(); +} + void Workspace::desktopPopupAboutToShow() { if ( !desk_popup ) @@ -1586,9 +1612,8 @@ void Workspace::slotWindowOperations() void Workspace::slotWindowClose() { - if ( !popup_client ) - return; - popup_client->closeWindow(); + if ( popup_client ) + popup_client->closeWindow(); } diff --git a/workspace.h b/workspace.h index 3977fa6be7..3247620730 100644 --- a/workspace.h +++ b/workspace.h @@ -115,6 +115,11 @@ public slots: void slotSwitchDesktop7(); void slotSwitchDesktop8(); + void slotWindowMaximize(); + void slotWindowMaximizeVertical(); + void slotWindowMaximizeHorizontal(); + void slotWindowIconify(); + void slotWindowOperations(); void slotWindowClose();