Linux перекрыть формой панели задач

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Linux перекрыть формой панели задач

Сообщение tema » 19.08.2015 01:58:34

Стоит задача полноэкранного приложения. Пытаюсь форму развернуть на весь экран, но остаются: в кедах нижняя панель задач, а в гноме и верхняя и нижняя.
Код:
Код: Выделить всё
  Form1.FormStyle:=fsSystemStayOnTop;
  Form1.BorderIcons:=[];
  Form1.BorderStyle:=bsNone;
  Form1.WindowState:=wsMaximized;

Не перекрывает.
Эту тему смотрел: viewtopic.php?f=5&t=10295 но там просто держать поверх всплывающих окон. Там я не видел, чтобы встал вопрос перекрыть и панели задач.

Добавлено спустя 10 минут 3 секунды:
Это http://www.freepascal.ru/forum/viewtopic.php?f=5&t=6787 тоже не помогает (указать вручную Form1.Height:= Screen.Height)
Я даже пробовал указывать: Form1.Height:= Screen.Height+50 ничего не меняется. Увеличивается по вертикали ровно до нижней панели задач хоть тресни!
tema
постоялец
 
Сообщения: 376
Зарегистрирован: 24.03.2011 20:19:27

Re: Linux перекрыть формой панели задач

Сообщение kazalex » 19.08.2015 02:40:15

WindowState := wsFullScreen;
kazalex
постоялец
 
Сообщения: 296
Зарегистрирован: 01.06.2012 14:54:10

Re: Linux перекрыть формой панели задач

Сообщение mig-31 » 21.08.2015 12:11:25

Панели в любом менеджере рабочго стола в Линух можно выключить
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: Linux перекрыть формой панели задач

Сообщение *Rik* » 21.08.2015 19:09:53

Для GTK2 взято из справки:

Код: Выделить всё
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Menus;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { private declarations }
  public
    OriginalBounds: TRect;
    OriginalWindowState: TWindowState;
    ScreenBounds: TRect;
    procedure SwitchFullScreen;
  end;

var
  Form1: TForm1;

implementation

uses gtk2, gdk2, glib2;

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
const
  KeyF11 = 122;
begin
  if Key = KeyF11 then SwitchFullScreen;
end;

procedure TForm1.SwitchFullScreen;
begin
  if BorderStyle <> bsNone then begin
    // To full screen
    OriginalWindowState := WindowState;
    OriginalBounds := BoundsRect;

    BorderStyle := bsNone;
    BoundsRect := Screen.MonitorFromWindow(Handle).BoundsRect;
     gdk_window_fullscreen(PGtkWidget(Handle)^.window);
  end else begin
    // From full screen
    {$IFDEF MSWINDOWS}
    BorderStyle := bsSizeable;
    {$ENDIF}
    if OriginalWindowState = wsMaximized then
      WindowState := wsMaximized
    else
      BoundsRect := OriginalBounds;
    {$IFDEF LINUX}
    BorderStyle := bsSizeable;
    {$ENDIF}
     gdk_window_unfullscreen(PGtkWidget(Handle)^.window);

  end;
end;

end.



Проверено на ALT Linux Simply, работает. После запуска, первое нажатие на F11 разворачивает форму на весь экран с перекрытием панели задач, второе нажатие F11, возвращает в обычное состояние
Аватара пользователя
*Rik*
постоялец
 
Сообщения: 451
Зарегистрирован: 19.04.2011 12:18:51
Откуда: Урал


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 221

Рейтинг@Mail.ru