Function set_activation_token_env

Source
pub fn set_activation_token_env(token: ActivationToken)
Expand description

Set environment variables responsible for activation token.

This could be used before running daemon processes.

Examples found in repository?
examples/window.rs (line 428)
334    fn window_event(
335        &mut self,
336        event_loop: &ActiveEventLoop,
337        window_id: WindowId,
338        event: WindowEvent,
339    ) {
340        let window = match self.windows.get_mut(&window_id) {
341            Some(window) => window,
342            None => return,
343        };
344
345        match event {
346            WindowEvent::Resized(size) => {
347                window.resize(size);
348            }
349            WindowEvent::Focused(focused) => {
350                if focused {
351                    info!("Window={window_id:?} focused");
352                } else {
353                    info!("Window={window_id:?} unfocused");
354                }
355            }
356            WindowEvent::ScaleFactorChanged { scale_factor, .. } => {
357                info!("Window={window_id:?} changed scale to {scale_factor}");
358            }
359            WindowEvent::ThemeChanged(theme) => {
360                info!("Theme changed to {theme:?}");
361                window.set_theme(theme);
362            }
363            WindowEvent::RedrawRequested => {
364                if let Err(err) = window.draw() {
365                    error!("Error drawing window: {err}");
366                }
367            }
368            WindowEvent::Occluded(occluded) => {
369                window.set_occluded(occluded);
370            }
371            WindowEvent::CloseRequested => {
372                info!("Closing Window={window_id:?}");
373                self.windows.remove(&window_id);
374            }
375            WindowEvent::ModifiersChanged(modifiers) => {
376                window.modifiers = modifiers.state();
377                info!("Modifiers changed to {:?}", window.modifiers);
378            }
379            WindowEvent::MouseWheel { delta, .. } => match delta {
380                MouseScrollDelta::LineDelta(x, y) => {
381                    info!("Mouse wheel Line Delta: ({x},{y})");
382                }
383                MouseScrollDelta::PixelDelta(px) => {
384                    info!("Mouse wheel Pixel Delta: ({},{})", px.x, px.y);
385                }
386            },
387            WindowEvent::KeyboardInput {
388                event,
389                is_synthetic: false,
390                ..
391            } => {
392                let mods = window.modifiers;
393
394                // Dispatch actions only on press.
395                if event.state.is_pressed() {
396                    let action = if let Key::Character(ch) = event.logical_key.as_ref() {
397                        Self::process_key_binding(&ch.to_uppercase(), &mods)
398                    } else {
399                        None
400                    };
401
402                    if let Some(action) = action {
403                        self.handle_action(event_loop, window_id, action);
404                    }
405                }
406            }
407            WindowEvent::MouseInput { button, state, .. } => {
408                let mods = window.modifiers;
409                if let Some(action) = state
410                    .is_pressed()
411                    .then(|| Self::process_mouse_binding(button, &mods))
412                    .flatten()
413                {
414                    self.handle_action(event_loop, window_id, action);
415                }
416            }
417            WindowEvent::CursorLeft { .. } => {
418                info!("Cursor left Window={window_id:?}");
419                window.cursor_left();
420            }
421            WindowEvent::CursorMoved { position, .. } => {
422                info!("Moved cursor to {position:?}");
423                window.cursor_moved(position);
424            }
425            WindowEvent::ActivationTokenDone { token: _token, .. } => {
426                #[cfg(any(x11_platform, wayland_platform))]
427                {
428                    startup_notify::set_activation_token_env(_token);
429                    if let Err(err) = self.create_window(event_loop, None) {
430                        error!("Error creating new window: {err}");
431                    }
432                }
433            }
434            WindowEvent::Ime(event) => match event {
435                Ime::Enabled => info!("IME enabled for Window={window_id:?}"),
436                Ime::Preedit(text, caret_pos) => {
437                    info!("Preedit: {}, with caret at {:?}", text, caret_pos);
438                }
439                Ime::Commit(text) => {
440                    info!("Committed: {}", text);
441                }
442                Ime::Disabled => info!("IME disabled for Window={window_id:?}"),
443            },
444            WindowEvent::PinchGesture { delta, .. } => {
445                window.zoom += delta;
446                let zoom = window.zoom;
447                if delta > 0.0 {
448                    info!("Zoomed in {delta:.5} (now: {zoom:.5})");
449                } else {
450                    info!("Zoomed out {delta:.5} (now: {zoom:.5})");
451                }
452            }
453            WindowEvent::RotationGesture { delta, .. } => {
454                window.rotated += delta;
455                let rotated = window.rotated;
456                if delta > 0.0 {
457                    info!("Rotated counterclockwise {delta:.5} (now: {rotated:.5})");
458                } else {
459                    info!("Rotated clockwise {delta:.5} (now: {rotated:.5})");
460                }
461            }
462            WindowEvent::PanGesture { delta, phase, .. } => {
463                window.panned.x += delta.x;
464                window.panned.y += delta.y;
465                info!("Panned ({delta:?})) (now: {:?}), {phase:?}", window.panned);
466            }
467            WindowEvent::DoubleTapGesture { .. } => {
468                info!("Smart zoom");
469            }
470            WindowEvent::TouchpadPressure { .. }
471            | WindowEvent::HoveredFileCancelled
472            | WindowEvent::KeyboardInput { .. }
473            | WindowEvent::CursorEntered { .. }
474            | WindowEvent::AxisMotion { .. }
475            | WindowEvent::DroppedFile(_)
476            | WindowEvent::HoveredFile(_)
477            | WindowEvent::Destroyed
478            | WindowEvent::Touch(_)
479            | WindowEvent::Moved(_) => (),
480        }
481    }