[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