image

С приходом windows на наши десктопы у нас появились окна приложений и этими окнами нужно было как-то управлять. Были сделаны две кнопки «сворачивания окна» и «разворачивания на весь экран», но довольно быстро дизайнеры интерфейса windows осознали, что закрывать окна приходится не реже чем сворачивать и разворачивать на весь экран и интерфейс получил третью кнопку в коем законсервированном состоянии и пребывает уже более двадцати лет и не только на windows. МакОС и различные окружения рабочего стола для Линукс использую полностью аналогичную систему, разве что положение этих кнопок иногда меняется (кто-то в левом верхнем углу окна их поместит, кто-то в правом).

Что же поменялось за 20 лет? В какой-то момент, одному гениальному дизайнеру пришла в голову замечательная идея — сворачивать своё приложение в трей. А другому не менее гениальному дизайнеру пришла идея использовать для этого «кнопку закрытия окна». И на данный момент мы имеем ряд приложений, которые по нажатию на кнопку закрытия окна — закрываются, а другая часть приложений по нажатии этой же кнопки сворачивается в трей. И как следствие полностью непредсказуемое поведение интерфейса, что делает его абсолютно неюзабельным.

Господа, долго мы ещё будем мучиться, пока кому-нибудь из разработчиков интерфейса ОС придёт в голову вернуть кнопке закрытия окна её изначальную функцию, а для сворачивания в трей сделают отдельную кнопочку (раз уж эта возможность активно используется и довольно популярна у разработчиков)?

Благодарю за внимание.

UPD. Через раз в комментариях приходится писать, что эту кнопку можно сделать опционально активируемой при разработке, для тех приложений в которых она нужна (так же как можно при разработке отключить кнопку «развернуть на весь экран»).
Вас устраивает такое положение дел?

Проголосовал 391 человек. Воздержалось 104 человека.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Поделиться с друзьями
-->

Комментарии (95)


  1. Harrix
    23.12.2016 06:34
    +2

    Данную «проблему» в любом случае не решить. Всегда можно сделать окно без всякого оформления и рамок, и нарисовать свои кнопки со своим функционалом. Многие так и делают.


    1. VasakaInc
      23.12.2016 06:37
      -5

      Зачем тогда эти три?
      Давайте уберём их совсем, пусть каждый делает любое количество, со своими функциями и своим дизайном этих самых кнопок.


      1. Harrix
        23.12.2016 06:41
        +1

        Чтобы в основной массе приложения пользовались системными кнопками.


        1. VasakaInc
          23.12.2016 06:51
          -2

          Вот для этого и нужна кнопка сворачивания в трей.
          Если эта функция стала настолько популярной у разработчиков, что они используют для этого кнопку предназначенную совсем для другого, значит пришло время задуматься о создании кнопки именно для этого действия.
          Как вариант, её можно показывать в окне приложения только если разработчик её явно активировал и использует эту функцию.


  1. alexey-m-ukolov
    23.12.2016 06:44
    +2

    Я десктопные приложения под винду не писал, поэтому не знаю — окно же в трей сворачивается потому что так разработчик программы обрабатывает нажатие кнопки закрытия? Если так, то что мешает ему оставить это же поведение при наличии хоть десяти дополнительных кнопок?


    1. VasakaInc
      23.12.2016 06:48
      -3

      То же самое, что сейчас мешает ему сделать закрытие окна по нажатию кнопки сворачивания окна.


      1. Germanets
        23.12.2016 11:07

        Да ничего не мешает сделать свой собственный способ обработки, кроме здравого смысла)


  1. Survtur
    23.12.2016 07:11

    Просто некоторые приложения разумно не закрывать, а сворачивать в трей. Я, например, не ожидаю, что при нажатии на крестик мессенджер, торрент или почтовый клиент закроется.


    1. VasakaInc
      23.12.2016 07:17
      +1

      Разумно не закрывать, согласен. Скинуть в трей и пусть висит. Но если я нажимаю на кнопку закрытия окна, то ожидаю, что оно закроется, а не свернётся в трей. Да это ещё пол беды. Если бы все приложения реагировали одинаково, ещё ничего было бы. А когда пользователь не может предсказать поведение приложения после нажатия на стандартную кнопку, это уже совсем плохо. Это и есть не интуитивный интерфейс.


      1. alexey-m-ukolov
        23.12.2016 07:21
        +1

        Обычному пользователю и не нужно ничего предсказывать — ему просто не важно, закроется программа или свернётся, он не понимает разницы между этими состояниями. И от введения дополнительной кнопки, которая делает непонятно что, он пострадает больше всего. Кому станет лучше, если он насовсем закроет нажатием привычной кнопки клиент облачного диска, например?
        А продвинутый пользователь легко может предугадать поведение и, подумав, сочтёт, что в большинстве случаев удобно именно оно.


        1. dom1n1k
          23.12.2016 15:52
          +1

          1. Апеллируя к сферическому «обычному пользователю» всё-таки не стоит считать его идиотом.
          2. Думаю, что многие из тех, что не понимают разницу, не понимают её именно из-за того, что это поведение не стандартизировано.


          1. alexey-m-ukolov
            25.12.2016 11:11
            +1

            Я и не говорю, что он идиот, просто эти технические детали, они интересны только нам, потому что это наша сфера. Вот я, например, не умею водить — вождение и вообще автомобили мне просто не интересны. И когда меня таксист куда-то везёт, мне совершенно не интересно, какая кнопка на панели у него за что отвечает. Но я нисколько не удивлюсь, если окажется, что где-то на форуме автомобилистов кто-то создал точно такой же опрос на тему «доколе кнопка переключения радио будет рядом с кнопкой включения обогрева сидений — у меня от этого подгорает!». Каждому — своё, короче говоря.
            Я вот не думаю, что многие не понимают разницу из-за неодинакового поведения. Некоторые — вполне возможно, а подавляющему большинству просто не интересно и не важно.


            1. GennPen
              25.12.2016 12:47
              +1

              Но я нисколько не удивлюсь, если окажется, что где-то на форуме автомобилистов кто-то создал точно такой же опрос на тему «доколе кнопка переключения радио будет рядом с кнопкой включения обогрева сидений — у меня от этого подгорает!».
              «Нужно сделать четвертую педаль. Я хочу иметь выбор: тормозить всеми колесами или только задними.»


            1. dom1n1k
              25.12.2016 16:28

              Да эта песня давно устарела. Очень часто вижу эти обращения к «обычному пользователю» — и всегда неявно подразумевается очень недалекий, на грани тупости, пользователь.
              Это было актуально 15-20 лет назад, когда компьютеры только входили в жизнь обычного человека и многим приходилось открывать совершенно новую для себя область. Сейчас, по прошествии указанного количества лет, уже выросло целое поколение, которое живет с компьютером с младенчества.
              А нынешние люди среднего возраста знакомилось с компьютером, будучи старшеклассниками, студентами, молодыми специалистами — то есть они прекрасно обучились.
              Да, они не знают, как компилировать ядро Линукса или настраивать DNS, но уж отличить кнопочки в окне, извините, могут прекрасно.

              P.S. 15-20 лет указаны для стран бывшего СССР. Для Запада можно смело накинуть еще лет 10.


              1. alexey-m-ukolov
                25.12.2016 22:14

                Как я уже сказал, речь не о тупости. И не о том, что кто-то не может различить кнопки. Для обычного пользователя нет разницы между закрытием окна и закрытием программы. Они даже слово «окно» не используют никогда. (На всякий случай уточню ещё раз — это не потому, что они тупые и не способны понять разницу.)


      1. michael_vostrikov
        23.12.2016 11:02
        +4

        Если вы нажимаете на кнопку закрытия окна, оно закрывается. То есть, исчезает с экрана и из панели задач. Кнопка делает то, что и должна. Приложения, которые предназначены для взаимодействия с пользователем, при закрытии главного окна завершаются сами, приложения с фоновыми задачами работают дальше. У многих приложений значок висит в трее независимо от открытых окон. И кстати в трее висит именно приложение, а не окно. Окно != программа, вы преувеличиваете проблему.


    1. chieftain_yu
      23.12.2016 08:56

      Хорошо.
      Забыли про кнопку.

      Есть пункты меню «Закрыть» и «Выйти».
      «Закрыть» — это закрытие только активного окна или всего приложения?
      А «Выйти» — это из программы или из учетной записи?


      1. DaemonGloom
        23.12.2016 11:24

        Это, увы, проблемы русского языка. В английском это логичные Close/Exit и Sign out. И для Sign out обычно используют фразу «Выход из учётной записи».


  1. saggid
    23.12.2016 07:14

    Просто некоторые приложения должны работать всегда, ибо ты регулярно открываешь их и потом "закрываешь" (на самом деле сворачиваешь в трей), чтобы снова развернуть через какое-то время. Как-то: всякие мессенджеры и утилиты. А остальные приложения открываются раз в день и не нуждаются быть постоянно запущенными. Всё вполне логично, меня лично устраивает.


    1. VasakaInc
      23.12.2016 07:18
      -2

      Выше уже ответил.

      Разумно не закрывать, согласен. Скинуть в трей и пусть висит. Но если я нажимаю на кнопку закрытия окна, то ожидаю, что оно закроется, а не свернётся в трей. Да это ещё пол беды. Если бы все приложения реагировали одинаково, ещё ничего было бы. А когда пользователь не может предсказать поведение приложения после нажатия на стандартную кнопку, это уже совсем плохо. Это и есть не интуитивный интерфейс.


      1. ApeCoder
        23.12.2016 12:15
        +1

        А чем закрытие и потом открытие с восстановлением состояния отличается от сворачивание в трей?


        Мне кажется, окна-то как раз закрываются. Просто приложение продолжает работать


        1. VasakaInc
          23.12.2016 13:22

          Мне кажется, окна-то как раз закрываются. Просто приложение продолжает работать

          Всё верно. В этом-то и проблема.

          А чем закрытие и потом открытие с восстановлением состояния отличается от сворачивание в трей?
          Наверное тем, что закрытое приложение не потребляет ресурсы и не проявляет сетевой активности.


          1. ApeCoder
            23.12.2016 14:49

            Именно для таких приложений и есть трей. В принципе, для какого-нибудь мессенджера достаточно двуз кнопок — свернуть и закрыть. Только вот основная проблема была в том, что если кнопка прям здесь на виду, то закрыть очень легко и надо вставлять предупредлеждение.


            А еще у приложени может быть UI отдельным процессом, а то, что жрет сеть и процессор — отдельным процессом. То есть все равно в логике приложени надо делать какую-то специальную вещь для управления бекграундом.


            Мне кажется, для массового пользователя управлять беграундом не надо, а для нас с вами вполне достаточно того, что есть


            1. VasakaInc
              23.12.2016 15:40
              -3

              Если бы мне было достаточно того что есть, я бы не стал это всё писать. Я постоянно мучаюсь с тем, что приложение не закрывается когда я его пытаюсь закрыть, а сворачивается в трей. И каждое приложение ведёт себя по разному. В результате надо самому помнить какие приложения по нажатию на кнопку закрытия закрываются, а какие сворачиваются в трей. И постоянно возникают ситуации когда: «О блин! Я же тебя закрывал, а ты в трее» или «Блин! Нажал закрыть, а оно в трей ушло и теперь лезть надо разобраться в какие меню и пункты меню залезть (и как до них добраться) чтобы закрыть приложение). Может кому-то такое положение вещей и нравится, но не мне.

              Да вы посмотрите сами на опрос. ~50% ответивших в опросе тоже устали от этих постоянных скидываний в трей вместо закрытия.


              1. Mingun
                23.12.2016 18:53
                +1

                Да ладно. Вы по тысяче новых приложений в день открываете и закрываете? Чем вы там занимаетесь?


                1. Lenivoe
                  25.12.2016 17:17

                  ну как вариант торренты на слабом железе качает.


  1. alexey-m-ukolov
    23.12.2016 07:18
    +1

    Не знаю как вы, а я не хочу своей тёще объяснять, чем отличается «закрыть» от «свернуть в трей» и что вообще за «трей» и почему всё так сложно. С тем же успехом можно добавить туда кнопку, которая будет делать условный «kill -9 %PID%». И кнопку, которая добавит программу в автозагрузку. И много чего ещё.

    Для тех, кому не нравится, что программа сворачивается в трей при нажатии кнопки «закрыть», в приличных программах есть настройка, которая убирает это поведение. Но как правило, оно сделано разработчиком не потому, что он такой коварный, а потому, что именно такое поведение и ожидается пользователем.


  1. we1
    23.12.2016 07:43
    +1

    Кажется, что подход не с того конца. В многозадачной системе зыкрытие окна и закрытие программы вполне может выглядеть одинаково. Конечно, конкретно в Windows это не так, но все ли пользователи это знают? А если не знают, значит их вариант _закрытия окна_ устраивает, и делать отдельно закрытие окна и закрытие окна с закрытием прогремы не совсем правильно?

    Все-таки здесь не настолько все очевидно, что нужно просто добавить еще одну кнопку. Тут надо еще подумать.


    1. VasakaInc
      23.12.2016 07:47
      -2

      Давайте подумаем. Предложите что-то другое, что решит проблему. Пусть нынешняя кнопка закрытия закрывает окно, а рядом сделаем ещё одну БОЛЬШУЮ, КРАСНУЮ кнопищу, которая закрывает приложение окончательно. Но пусть это будет интерфейс с единым поведением для всех приложений, предсказуемый и интуитивный.


      1. GreyPhantom
        23.12.2016 12:30

        пусть это будет интерфейс с единым поведением для всех приложений, предсказуемый и интуитивный.
        Тумблер на севом фильтре не пойдет?- Закрывает сразу все приложения и выключает комп, Куда уж интуитивнее-то?
        Ну а если без сарказма- что мешает Вам «смастерить » такую кнопку? Некое приложение с единственной (или наоборот- с отдельной для каждого приложения (боже, я придумал диспетчер задач)) кнопкой?


        1. VasakaInc
          23.12.2016 12:35

          Я не разработчик. Я пользователь. Но буду рукоплескать подобным приложениям, если мне не придётся лезть в настройки и понимать что и как там в программе делается при нажатии кнопки «закрыть», а сразу будут две кнопки которые будут отвечать каждая за свою функцию.


      1. ProVal
        23.12.2016 12:56

        Я вижу простейшее решение проблемы «закрывает ли эта кнопка программу или сворачивает в трей?».
        Если закрывает — рисуем на крайней красной (в винде) кнопке крестик [ х ].
        Если сворачивает в трей — вместо крестика на той же кнопке рисуем что-нибудь другое.
        Например стрелочку [ v ]
        В итоге взаимодействие остаётся привычным, но информативность повышается, так как всегда знаем, чего от этой кнопки ожидать.


        1. VasakaInc
          23.12.2016 13:28

          Да, это будет уже однозначно лучше чем сейчас. Но иногда нужно закрыть приложение и хочется сделать это быстро. Желательно нажатием одной кнопки. А если разработчик эту кнопку занял функцией сворачивания в трей, то возникает проблема.
          Хороший интерфейс тот, который самые востребованные функции позволяет выполнять без лишних телодвижений.
          А подход «эта кнопка выполняет разные действия» и «непонятно от чего зависит какое действие будет выполнено» — это плохой интерфейс.


  1. Lordick
    23.12.2016 07:47

    Кстати, в Windows кнопку [X] еще можно заменить двойным нажатием на левый угол окна. Очень удобно, когда мышь в той стороне, и ей лень тянуть в другой угол.

    По теме — устраивает. Обычно в таких программах есть настройка поведения по нажатию кнопки закрытия.
    К слову, в MacOS все приложения не закрываются по этой кнопке, а сворачиваются/остаются на панели подсвеченные.


    1. Finesse
      23.12.2016 09:19
      +1

      В macOS не все приложения сворачиваются по этой кнопке. Примерно половина приложений выключается, когда закрыты все окна.


      1. 0xcffaedfe
        23.12.2016 11:46

        Если в приложении всего одно окно главное и программист использовал applicationShouldTerminateAfterLastWindowClosed


        1. Finesse
          23.12.2016 11:53
          +1

          QuickTime и Просмотр, например, завершают работу, когда все окна закрыты, хотя у них нет главного окна и можно сделать несколько равноправных окон, а Терминал и браузеры так не делают.


          1. 0xcffaedfe
            23.12.2016 15:53

            Нет, не завершаю, остаются висеть в доке, как и терминал без настройки на обратное, а вот калькулятор например/дисковая утилита закрываются полностью.


            1. Finesse
              23.12.2016 16:16

              У меня QuickTime и Просмотр исчезают из Dock, но соответствующие процессы остаются в Мониторинге системы. Я слышал, что macOS закрывает эти приложения (когда закрыты все их окна), если в системе мало ОЗУ.


      1. 776166
        23.12.2016 13:19
        +1

        В MacOS некоторые приложения закрываются, а некоторые просто закрывают окна по красной кнопке. В основном закрытие именно окна. В последнее время количество приложений, которые перестали использовать красную кнопку, как закрытие программы уменьшилось, и это очень логично и правильно.
        При переезде с Windows на MacOS (не дай докинз переезжать обратно), был очень приятно удивлён этой логикой, потому что в подавляющем числе случаев мне надо закрыть окно, а не приложение, которое ещё может долго запускаться, а мисклик будет каждый раз бомбить.

        На практике, алгоритм действия этой кнопки можно и нужно программировать, но в зависимости от логики работы самого приложения, а не виртуальной необходимости иметь возможность нажать на все кнопки. Иметь две кнопки нет никакой необходимости.


  1. zeronice
    23.12.2016 07:50
    +2

    Не против того, чтобы приложения, которые редко закрываются посреди рабочего процесса прятались по крестику в трей. Но РЕЗКО ПРОТИВ того, чтобы они так же поступали по Alt+F4. С нажатием кнопки в углу экрана так никто на 100 %, что должно случиться с приложением, но предельно ясно, что оно должно убраться с рабочего стола и из панели задач, закрытия приложения (или Dispose() конкретного окна) не гарантировали. А вот по шорткату, который еще и подписан как «Закрыть приложение» хочется, чтобы приложение убивалось.


    1. Germanets
      23.12.2016 11:13

      Не знаю как в более старых и более новых виндах и других операционках, но у меня на Windows 7 и на Windows 8.1 шорткат «Alt+F4» отображается напротив пункта «Закрыть»(контекстное меню на заголовке окна), а кнопки «Закрыть приложение» нет вообще.


      1. GennPen
        23.12.2016 11:27

        Даже через панель задач, через правую кнопку мышки находится пункт «Закрыть окно», а не «Закрыть приложение»


      1. zeronice
        23.12.2016 14:33

        Вообще могу предположить, что механизм работы крайне простой:
        если обработки события onClosing не осуществляется — окно смело закрывается, если идет перехват этого события, то дальше уже все зависит от автора программы. То есть по умолчанию в WinForms при нажатии крестика для конкретного окна будет вызвано Dispose(), ну а дальше уже зависит от того, главное это окно или нет.
        Так что вопросы к UI-дизайну Windows отпадают, но появляются к наличию гайдов по дизайну приложений


        1. Germanets
          23.12.2016 15:38

          Механизм действительно работает так, если не переопределить действие при закрытии — форма закроется, а с ней и приложение, если это основная форма.

          С гайдами всё сложнее — они есть(Windows User Experience Interaction Guidelines), но вот найти хоть какое-то упоминание о логике работы кнопки «Закрыть» и сворачивании в трей мне не удалось. Сам Microsoft(пример — Outlook) всегда закрывает открытое приложение по «крестику», при этом для сворачивания можно установить вариант «свернуть в трей». К сожалению, это против привычек пользователей — я неоднократно случайно закрывал Outlook и переставал получать почту, в то время по-привычке ожидая стандартного поведения IM-программ — работы в трее.


          1. zeronice
            23.12.2016 15:54

            В ходе последнего года работы вообще отказался от сворачивания приложений в трей — виной тому клиент Hyper-v — при попадании в фокус он убирает из трея значок раскладки клавиатуры и переключение из виртуалки в мигающее в трее приложение вызывает боль — все время промахиваешься из за сдвига значков по возвращении значка раскладки. Так что трею осталась только информирующая функция, но и та постепенно отмирает благодаря новому механизму уведомлений в Win10


  1. Tujh
    23.12.2016 08:19
    +1

    если я нажимаю на кнопку закрытия окна, то ожидаю, что оно закроется, а не свернётся в трей
    Поведение абсолютно логичное. Окно программы закрылось, а сама программа продолжила работу, о чём свидетельствует иконка в трее.
    Окно != программа.
    Почему сделано изначальное допущение что приложение однооконное?


    1. VasakaInc
      23.12.2016 08:26
      -1

      Значит нужно сделать кнопку закрытия приложения в дополнение к имеющимся трём. Тоже решение. Однако мне кажется оно хуже того, которое я озвучил изначально.


      1. Tujh
        23.12.2016 09:27
        +3

        То есть нужен, как минимум, следующий набор кнопок:
        * свернуть окно
        * свернуть все окна программы
        * развернуть окно
        * закрыть окно
        * закрыть все окна программы
        * закрыть программу

        уже только тут минимум шесть кнопок, а если подумать — до десятка набежит легко… вы всё ещё уверены в том, что предложили хорошую идею?


        1. VasakaInc
          23.12.2016 10:12

          Насколько я знаю, люди в основном мучаются именно с этой проблемой.
          О проблемах:
          * свернуть все окна программы
          * закрыть все окна программы
          я не слышал.

          Я всё ещё уверен, что предложил хорошую идею и что нужна всего лишь дополнительная четвёртая кнопка и то, вероятно, опционально, если разработчик использует функцию сворачивания в трей для своего приложения.

          Более того, не только я думаю что эта проблема существенна, требует решения и я предложил хорошее решение, но ещё примерно 50% людей поучаствовавших в опросе.


          1. GennPen
            23.12.2016 10:32

            Не нужно загромождать интерфейс лишними бесполезными кнопками. Специально для таких людей, которые забывают в какой программе какая кнопка сворачивает в трей — нужно сделать кнопку свернуть/закрыть с иконкой в виде точки справа-внизу с соответствующим тултипом, и тогда будет понятно какая кнопка сворачивает окно в трей.

            А вообще, таких программ, которые сворачиваются в трей не так уж и много. Если сделать всем программам возможность сворачивания в трей — он еще больше будет захламляться. Пусть уж лучше висят в панели задач.


          1. Tujh
            23.12.2016 13:30

            Я всё ещё уверен, что предложил хорошую идею
            Эта идея основана на предположении, что программа имеет единственное окно и при его закрытии должна закрываться вся программа, что в современном мире не соответствует истине даже для мобильного приложения.


          1. Tujh
            23.12.2016 13:30

            О проблемах я не слышал.
            О проблеме «четвёртой кнопки» я во т тоже до сегодняшнего дня не слышал, как бы.


        1. VasakaInc
          23.12.2016 10:38
          -1

          Пользователь всего лишь нужен удобный, быстрый и понятный способ закрыть всё приложение. Я об этом.
          Если этой функцией пользуются часто, значит должен быть быстрый доступ к этой функции.

          Если одна и та же кнопка используется для выполнения разных действий (в одном случае программа не закрывается, в другом программа закрывается), то с точки зрения интерфейса пользователя это не просто плохо. Это катастрофа.


          1. Tujh
            23.12.2016 13:28
            +1

            Кнопка закрытия окна и Кнопка закрытия программы — это разные вещи и не нужно их смешивать. Абсолютно нормально, что можно закрыть все окна программы, например — любой мессенджер, но оставить саму программу работать (иконка в трее). Все окна действительно закрыты, их ресурсы освобождены, но программа продолжает работу и имеет ту самую «кнопку» — «закрыть программу», вызывается из меню и называется «выход из программы».


      1. Tujh
        23.12.2016 09:33

        И отдельно отвечу на:

        оно хуже того, которое я озвучил изначально

        Изначально предложено, что кнопка закрыть — закрывает программу, а не сворачивает в трей, так? Я уже задал вопрос, почему сделано предположение, что приложение однооконное?
        Простой пример. Окно программы и окно настроек программы, не модальное. Я хочу закрыть основное окно и продолжить настройку. Как поступить? Какая именно кнопка закрытия какого именно окна должна закрывать приложение? К примеру, последнего активного? А если это мессенджер, я открыл окно настроек, но закрыл окно чата, что делать? Нужно ли открывать окно для отображения нового сообщения? Или закрытие окна чата означает, что следует отключиться от сети передачи сообщений?
        Огромное количество нюансов и вопросов без ответа. На каждое действие по своей кнопке?


      1. ApeCoder
        23.12.2016 12:28

        А зачем пользователю вообще в его системе понятий приложение как таковое? Ему надо какие-то сущности предметной области — документ, процесс приема и передачи сообщений


  1. DrZlodberg
    23.12.2016 08:36

    А решение элементарное. Есть такая программка rbtray для окошек. Как можно уже догадаться по названию — сворачивает окно в трей по нажатию ПРАВОЙ кнопки мыши на кнопке сворачивания. Если забыть про мак — у всех остальных на мышке больше одной кнопки. А ещё есть клавиатурный модификаторы типа alt, shift и пр. Что в сумме может изрядно разнообразить варианты без роста количества кнопок на окне.


    1. staticlab
      23.12.2016 09:20

      На Magic Mouse тоже не одна кнопка, если что.


    1. Sirikid
      23.12.2016 09:46

      А ещё можно взаимодействие с окном забиндить не на кнопки мыши, а на кнопки клавиатуры (и вообще убрать заголовки). У меня, например, это Super + Escape.


      1. DrZlodberg
        23.12.2016 10:09

        Отсутствие заголовка не слишком удобно, если нужно менять расположение окон. Сам обычно работаю в полноэкранном режиме, однако изредка требуется видеть пару окон одновременно. Особенно если точно позиционированных. И вот тут начинаются проблемы. И с клавой ещё та проблема, что сложно предсказать, как с этими кнопками будет работать конкретная программа. С мышкой же точно указываем, с чем взаимодействуем.


        1. Sirikid
          23.12.2016 10:59

          Распространненое решение уже упомянутая кнопка Super, перемещание окна Super + ЛКМ, изменение размера Super + ПКМ.


  1. VaalKIA
    23.12.2016 09:42
    +3

    Если бы вы пользовались Мак, то было бы очевидно, что это всё кнопки закрытия окон, а не программ, и по какой причине закрывается программа вообще не понятно, на Маке для этого вообще кнопок не надо command+Q и программа завершилась, только вот там можно определить без всяких окон, какая программа активна, а в Виндовс — нет. По вашему же вопросу, меня со времён Виндовс 95 всегда ставило в ступор, что программы светящиеся в трее, при сворачивании сворачиваются не в трей, а для этого их надо закрыть… вот это вот шок. почему сворачивание-то не для трея?


  1. CodeName33
    23.12.2016 10:32
    +4

    Иногда бывает ситуация, когда окно это не вся программа, а только вспомогательная её часть. Например вся программа сидит в трее, и что-то там делает (например, ожидает хоткеев для каких-то действий). Дваждый щелкнув по иконке в трее, я открываю окно настроек. Это единственное окно этой программы. Выставив настройки как мне надо, я нажимаю «применить», а затем закрываю окно настроек. И вот меньше всего я ожидаю, что при этом вся программа прекратит свою работу :) Да и вообще, крестик значит — закрыть окно. Вы его нажимаете, окно закрывается? Закрывается! Какое отношение закрытие окна имеет к прекращению работы программы? Тогда уже надо делать не кнопку «свернуть в трей», а кнопку «завершить программу»


    1. VasakaInc
      23.12.2016 10:47

      Всё зависит от того, с какой стороны посмотреть. Для кого-то этот крестик — закрытие окна. Для кого-то — закрытие приложения. И не понятно кого больше. Тех кто считает что крестик закрывает окно или тех, кто считает, что крестик закрывает приложение. Потому что на практике встречается и то и другое. А с точки зрения построения хорошего пользовательского интерфейса, кнопка не должна выполнять разные действия (то есть закрытие приложения, то нет).


      1. CodeName33
        23.12.2016 11:03

        Если окон несколько, никто ведь не ждет, что закрывая одно из окон, закроется вообще все приложение. Закрывается конкретно то окно, у которого была нажата кнопка. Вопрос возникает, когда «главное» окно было закрыто. Но во первых, не все приложения имеют «главные» окна, во вторых, если основная задача приложения работать в фоне, то закрытие главного окна не должно быть причиной для прекращения работы всего приложения. Если я закрыл окно торрента, это не значит, что не хочу чтобы они качались. Это значит, что я не хочу больше видеть его окно и я нажимаю его закрыть. Именно закрыть, не свернуть потому, что при сворачивании я ожидаю, что оно должно остаться на панели задач вместе с другими свернутыми окнами, а оно мне там не нужно. Я хочу его закрыть, полностью. Но чтобы торренты при этом продолжали качаться.


        1. VasakaInc
          23.12.2016 11:30
          -1

          Я про это и говорил. Некоторые люди (и их довольно много) нажимая кнопку закрытия окна ожидают, что приложение закроется полностью, а не только окно.
          Если у нас есть две функции на одну кнопку, логично эту кнопку разделить на две. Чтобы каждая отвечала за свою функцию.


          1. CodeName33
            23.12.2016 11:46

            Тогда надо делать две кнопки «закрыть окно» и «закрыть приложение», но что делать если было закрыто последнее окно приложения и у него нет иконок в трее? Все равно ведь придется закрывать приложение :) Если только у последнего окна приложения, которое завершится после его закрытия, оставлять только кнопку «закрыть приложение» и не делать кнопку «закрыть окно».


            1. VasakaInc
              23.12.2016 12:41

              Вот поэтому мне и кажется, что решение с кнопкой «свернуть в трей» лучше. А по нажатии кнопки «закрыть» — закрывать приложение, а не окно.


              1. Tujh
                23.12.2016 13:34

                А если приложение не должно сворачиваться в трей нужна ещё одна кнопка «свернуть но не в трей»?


              1. CodeName33
                23.12.2016 14:16

                Но это же все равно не решает проблемы разного поведения кнопки закрыть. Например для дополнительных окон, кнопка закрыть будет закрывать только окна, для основного окна кнопка закрыть будет завершать приложение. Причем зачастую при закрытии главного окна работа приложения завершается, несмотря на то, что у приложения были открыты и другие окна. Мне кажется так, как сейчас уже сделано оптимально. Нужно понимать что окно — это не приложение, а всего лишь его часть, не всегда обязательная, т.к. не любое приложение обязано иметь пользовательский интерфейс. Кнопка закрытия всегда закрывает окно и если после этого приложению больше нечего делать — оно закрывается. А если у него осталась другая функциональность — оно продолжит работу. Такое понятие, как «свернуть в трей», придумали зря. Чаще всего, у приложения всегда висит иконка в трее, независимо от открытых окон. Такое приложение есть ничто иное как сервис, который позволяет показать некоторые окна с информацией и после их закрытия также продолжит работу. Почему это должно быть не так? И тогда сразу следующий вопрос: а если приложения из трея, по клику или из меню запустит другой процесс в котором будут окна, должно ли оно будет завершиться когда эти окна будут закрыты? :)


                1. VasakaInc
                  23.12.2016 15:51

                  Мой опыт пользователя говорит, что у программы есть главное окно (которое и ассоциируется с приложением) и окна вызываемые из главного окна. Когда я закрываю окна вызванные из главного окна, я ожидаю что закроются именно они. Когда я закрываю главное окно, я ожидаю, что закроется приложение целиком. И обратите внимание на опрос, который говорит, что половина пользователей тоже ожидают такого же поведения от программы.

                  Если я что-то не так понял, уточните, я попробую объяснять.


                  1. Tujh
                    23.12.2016 16:08

                    Мой опыт пользователя говорит, что у программы есть главное окно
                    И вам все пытаются доказать, что именно в этом ваша ошибка. Такого понятия как «главное окно» в принципе не существует. Есть некая условность, что какая-то форма более важна чем другие.
                    Простой пример — приложения на Delphi, казалось бы, вот она — главная форма и дополнительные, но на самом деле, в приложении живёт ещё одно окно, скрытой от пользователя, невидимое, и именно оно обрабатывает все сообщения от системы (очередь событий и всё такое) и именно закрытие этой формы закрывает приложение, но как это сделать если оно невидимо?


                    1. VasakaInc
                      23.12.2016 16:49
                      -2

                      Господин, уймитесь уже. Я вам уже давно не отвечаю, но вы ходите по всем веткам и упорно продолжаете оппонировать мне.
                      Обсудите эту проблему с другими пользователями в этой теме или пообщайтесь в других темах, но не нужно ждать ответа от меня. Моё мнение о вас уже сформировалось и общаться с вами мне не хочется.
                      Всего доброго.


                      1. Tujh
                        24.12.2016 11:31
                        +1

                        Фу, как грубо.
                        Но «господин» — это хорошо, это правильно :)


                  1. CodeName33
                    23.12.2016 16:29

                    Давайте разделим приложения на два типа:
                    1) Приложение которые запускаются пользователем вручную, у которых есть главное окно в котором и работает пользователь, при закрытии которого приложение обычно завершает свою работу.
                    2) Приложения, которые, как правило, стартуют самостоятельно, показывая лишь иконку в трее. При двойном щелчке по иконке в трее или при щелчке по одному из пунктов трей-меню приложения, оно может показывать какие-то окна. Но при их закрытии приложение не должно никуда деваться из трея.

                    Т.е. грубо говоря, если при запуске приложения было показано окно, то при его закрытии, приложение в 99% завершает свою работу. Если же при запуске, никаких окон показано не было, и окна появлялись уже после взаймодействия с трей-значком, то при их закрытии приложение завершать свою работу не должно.

                    Но бывают и исключения, например, когда пользователю не нужно приложение в автозагрузке, и при запуске оно показывает главное окно, но при его закрытии уходит в трей, т.к. является ещё и фоновым сервисом.

                    Во всех случаях при нажатии кнопки закрыть окно — оно закрыватся. Было ли при этом завершено приложение? А должно ли пользователя это вообще волновать? И что значит приложение было завершено? Завершен ли процесс? А что если трей-иконка и окна открытые, при нажатии на нее это разные процессы? Можно ли считать приложение завершенным, если закрывая окно, процесс их породивший завршится, при этом другой процесс того же программного продута останется висеть с иконкой в трее? А если при закрытии главного окна приложения, оно не завершается еще какое-то время, чтобы при последующем запуске не тратить время на загрузку ресурсов? Возвращаемся к изначальному вопросу: должно ли пользователя это волновать, и если у него нет проблем с производительностью ОС? ИМХО — нет.


                    1. VasakaInc
                      23.12.2016 16:41

                      Ну вот вы считаете что это не должно волновать пользователя, а 50% пользователей почему-то это продолжает волновать.
                      Это мой компьютер и кого как не меня должно волновать что у меня запущено, что поедает ресурсы системы и что лезет в интернет?

                      Если я нажимаю закрыть приложение, то я ожидаю от него такого поведения при котором закроется само приложение и все запущенные процессы, которые были запущены при старте этого приложения (с глаз долой из сердца вон).


                      1. CodeName33
                        23.12.2016 16:50

                        Среднестатистического пользователя вообще не волнует будет ли закрыт процесс или нет, он даже может не знать, что это такое. Ему важно, чтобы файлы с которыми он работал были сохранены и корректно закрыты. Если процесс повисит в памяти ещё какое-то время (особенно если памяти много) — ничего страшного не будет, даже наоборот, время запуска документов ассоциированное с этим приложением уменьшится и пользователь от этого только выиграет. При этом когда памяти останется мало, приложение может выгрузиться окончательно. Такое умное поведение программы у пользователя вызовет лишь положительные эмоции.


                        1. VasakaInc
                          23.12.2016 16:57

                          Как скажете.


          1. GennPen
            23.12.2016 12:09

            нажимая кнопку закрытия окна ожидают, что приложение закроется полностью, а не только окно
            Приложение и закрывается, если программист написал в программе, что после закрытия окна приложение(процесс) заканчивает свою работу. Но если нужна фоновая работа — процесс продолжает свою работу в фоне, и если программист написал в программе индикацию значка в трее, то программа после закрытия окна «сворачивается в трей».


  1. pewpew
    23.12.2016 10:36

    Alt+F4 и не надо елозить мышкой в поисках крестика.


  1. dipsy
    23.12.2016 10:41

    Ещё можно жесты мышкой использовать для разворачивания/сворачивания/закрытия. Я уже забыл когда в кнопочки эти тыкал последний раз, крайне неудобное решение, они мелкие и ещё расположены рядом.


    1. GennPen
      23.12.2016 10:48
      +1

      Честно, начиная с W7 я уже не помню когда пользовался кнопкой «свернуть в окно/развернуть». Гораздо проще мышкой потянуть за заголовок окна.


      1. Sabbaot
        23.12.2016 12:29
        +1

        у меня aquasnap стоит для чуть большего удобства работы с окнами на windows 10. в свободное время я приучиваюсь к i3wm

        а, автор, зря развел такую тему. умные люди (разработчики программ) уже придумали в настройках указывать, что делать по нажатию крестика окна программы, к примеру: skype, total commander, keepass, utorrent и это удобно. а по твоему выходит что и у дропбокса, виндовс дефендера, сети, и даже у флешки будет свое окно с кнопками крестика и сворачиванием окна. на кой ляд людям сворачивать браузер, проводник, ворд и прочее в трей? наверно такая кнопка поможет скрывать игрушки и браузеры от взора начальника из-за спины и только (rbtray)

        Однако, лично меня бесит хромиум, по закрытию последней вкладки закрывается весь браузер. конечно, костыли уже придумали, но со времен православной оперы, да и большинства программ привычка осталась.


        1. VasakaInc
          23.12.2016 12:29

          Эту кнопку можно сделать опционально активируемой при разработке, для тех приложений в которых она нужна (так же как можно при разработке отключить кнопку «развернуть на весь экран»).


        1. GennPen
          23.12.2016 12:36

          уже придумали в настройках указывать, что делать по нажатию крестика окна программы, к примеру: skype, total commander, keepass, utorrent и это удобно
          Лично я считаю следующее:
          Если программе нужно работать в фоне — она должна висеть в трее (пример из списка выше: skype, keepass, utorrent(опционально))
          Если программа «обычная», без фоновых процессов — она должна сворачиваться в панель задач, но не в трей (total commander)


          1. VasakaInc
            23.12.2016 12:46

            Или так.
            Всё лучше чем сейчас. Хотя бы будешь точно знать, что нажимаешь «свернуть» и она свернулась. Проблема только в том, что программы будут сворачиваться в разные места, но это однозначно гораздо меньшая проблема, чем сейчас.


            1. GennPen
              23.12.2016 12:55

              В принципе, вышеназванные программы с настройками по умолчанию именно так себя и ведут, как написал выше.


              1. VasakaInc
                23.12.2016 13:04

                Не знаю как себя ведут вышеперечисленные приложения по умолчанию, но приложения которые сворачиваются в трей не ограничиваются этим списком. И не все себя так ведут по умолчанию.


  1. RomaS
    23.12.2016 15:46

    Мне просто удобно использовать угловую кнопку, т.к. я могу просто «бросить» в угол курсор и кликнуть, не задумываючись о прицеливании. К примеру Utorrent позволяет настраивать поведение угловой кнопки на закрытие или сворачивание.
    По этой же причине вкладки в браузере стали располагаться сверху впритык к границе экрана. Таким образом они стали обладать бесконечной высотой. Сколько не веди курсор вверх, всё-равно останешься на той самой вкладке.


  1. fi11er
    23.12.2016 15:46

    Если разделять понятия окна и программ, то все становится логичнее. При нажатии кнопки всегда закрывается окно. Различается поведение программы — она либо завершается либо нет.

    Ваше предложение — при закрытии последнего окна всегда должна завершаться программа. В этом случае, например, при закрытии последнего открытого окна проводника должен завершаться процесс explorer, который помимо окошек с папками еще и меню пуск рисует.

    Если этот пример исключение, то чем explorer лучше торрента или мессенджера, они тоже хотят продолжать работать при закрытии окна.


    1. VasakaInc
      23.12.2016 15:57

      Ответил на то же самое выше:

      Мой опыт пользователя говорит, что у программы есть главное окно (которое и ассоциируется с приложением) и окна вызываемые из главного окна. Когда я закрываю окна вызванные из главного окна, я ожидаю что закроются именно они. Когда я закрываю главное окно, я ожидаю, что закроется приложение целиком. И обратите внимание на опрос, который говорит, что половина пользователей тоже ожидают такого же поведения от программы.


      Про эксплорер. Я этот процесс не запускаю, его запускает система для чего-то, что ей нужно. А окно проводника это окно проводника. Я его закрыл, оно закрылось. Я доволен.
      Но это гипотетически. Потому что сейчас не пользуюсь виндовс и не запускаю эксплорер.


      1. Tujh
        23.12.2016 16:13

        Про эксплорер. Я этот процесс не запускаю
        Не читал, но обсуждаю?
        Тогда возникает вопрос по программам из автозагрузки. Их как, закрывать по «крестику» или сворачивать? Их Вы тоже не запускали, их запустила система.
        сейчас не пользуюсь виндовс
        Просто из любопытства, а чем пользуетесь?


      1. GennPen
        23.12.2016 17:12

        Но это гипотетически. Потому что сейчас не пользуюсь виндовс и не запускаю эксплорер.
        То есть вы гипотетически предлагаете людям, которые сидят на другой системе, работать с тем интерфейсом, который как вам кажется удобней?


        1. VasakaInc
          23.12.2016 17:21
          -2

          Вот есть такие люди, которые ходят и без устали гадят по углам, под коврик, за диван…
          Не хочу вас расстраивать, но это вы.