[compiz] Window specific actions and edge buttons

Mike Dransfield mike at blueroot.co.uk
Mon May 21 12:00:53 PDT 2007


David Reveman wrote:
> On Fri, 2007-05-18 at 15:14 +0100, Mike Dransfield wrote:
>   
>> David Reveman wrote:
>>     
>>> On Wed, 2007-05-16 at 11:51 +0100, Mike Dransfield wrote:
>>>   
>>>       
>>>> David Reveman wrote:
>>>>     
>>>>         
>>>>> On Tue, 2007-05-15 at 00:29 +0100, Mike Dransfield wrote:
>>>>>   
>>>>>       
>>>>>           
>>>>>> There is a problem with some window specific actions like
>>>>>> scale_group and rotate_with_window when they are activated
>>>>>> by an edgebutton.
>>>>>>
>>>>>> The basic problem is that each of those actions use the window
>>>>>> option provided to the action.  When an edgebutton is used the
>>>>>> window id sent is actually the id of the edge window, this means
>>>>>> that actions which rely on this stop working.
>>>>>>
>>>>>> The obvious solution would be to change the affected functions
>>>>>> to work on the active window rather that the one passed to the
>>>>>> action.
>>>>>>     
>>>>>>         
>>>>>>             
>>>>> Yes, I think that's what should be done.
>>>>>   
>>>>>       
>>>>>           
>>>> OK - I did that for those two.
>>>>
>>>> I am just about to push out similar changes for close_window,
>>>> minimize_window and maximize_window.  If they reduce some
>>>> functionality then please let me know and I will write it so that
>>>> it checks for an edge and only uses activeWindow then.
>>>>     
>>>>         
>>> This is likely not what you want when a button press triggered an action
>>> and it removes the possibility to remotely trigger those actions for
>>> specific windows.
>>>   
>>>       
>> OK - I didn't think of that possibility.  I'll change it back to
>> the old way.
>>
>> I would like to keep the ability to do both without breaking
>> either method.  How about adding edge_window to the list of
>> options which are sent?  If the action was edge+button then it
>> would be set to the id of the edge window.  The window option
>> could be set to active window in this case.
>>     
>
> Yes, that sounds pretty good. Maybe it's better to add a more general
> event_window to the list instead.
>   

OK - I have added that, reverted the other changes and
amended core.xml.in to allow edges for a lot more core
actions.  I don't think that should cause any problems
elsewhere.


>>> For scale_group and such I think you want to only use the active window
>>> if the provided window is an edge window or a maybe a window that isn't
>>> managed. I don't see any reason why close_window, etc should be changed.
>>>   
>>>       
>> I think it is a useful accessibility feature, there are lots of
>> people who find it hard to click precisely on the decorator
>> buttons.  Pushing to the corner and clicking is easier because
>> it does not require such fine motor skills.
>>     
>
> OK, I didn't get that this was the reason you wanted to change those
> functions. Yes, it seems useful. Adding an event_window argument will
> allow those functions to work with screen edges without modifying them.
>
> -David
>
>   



More information about the compiz mailing list