movewin 1.10 → 1.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA512:
3
- metadata.gz: 80a8494844c5958c53d6d95060d4942d19b978c813b6f2569438ca7cc57516cf1e25c0bd60d9515627913459aed73e5cc53c50182e844618b0e35fd017a842b3
4
- data.tar.gz: 87ae9e2412066d7f0bca5d371b3c8d4da8e2a66a27a57110800bc44ed3a60ee76b35fb163a71725b4f764733cd86990d0bf04f39ffbfea96d8c84fc9cb7aae48
5
- SHA1:
6
- metadata.gz: 80b22a01e6acf8334ac76fe89ee6b7ebafcf067b
7
- data.tar.gz: b9541fed9f61d491565af58df6e056f7293ab110
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 3843c385c582fdeeb83f418b7681e91506fcd9a8e0b645b321e12a3c6e02d120
4
+ data.tar.gz: 60fe63177a8b4081f64bccdbf36bd824f562a13390b082734337c95c6eba2ae1
5
+ SHA512:
6
+ metadata.gz: acb032ac21110ad0b3d142966a3e43e1c7f2be28780eb90e2f655d2b10a3f2850169757bc9ce01aef87c43cc4ae435f82cc6129883c8471a2c8f23000f4efe86
7
+ data.tar.gz: 3701ad4547eec20f8a4604250a82a23c778cfc596e0fdc561af70e1485103505ae1565e17de707307c0b4c513c76ec923e0a3dc42806b1e8d4e93c157ee2acbd
@@ -2,7 +2,7 @@
2
2
  * movewin_ext.c - Ruby extension to list and move OS X windows
3
3
  * Andrew Ho (andrew@zeuscat.com)
4
4
  *
5
- * Copyright (c) 2014-2015, Andrew Ho.
5
+ * Copyright (c) 2014-2020, Andrew Ho.
6
6
  * All rights reserved.
7
7
  *
8
8
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +44,10 @@ static VALUE MW_WindowClass;
44
44
  void Init_movewin_ext();
45
45
 
46
46
  /* Ruby method implementations */
47
- VALUE MW_is_authorized(VALUE module); /* MoveWin.authorized? */
47
+ VALUE MW_is_recording_authorized(VALUE module);
48
+ /* MoveWin.recording_authorized? */
49
+ VALUE MW_is_accessibility_authorized(VALUE module);
50
+ /* MoveWin.accessibility_authorized? */
48
51
  VALUE MW_display_size(VALUE module); /* MoveWin.display_size */
49
52
  VALUE MW_windows(VALUE module); /* MoveWin.windows */
50
53
  VALUE MW_Window_id(VALUE self); /* MoveWin::Window.id */
@@ -86,7 +89,10 @@ void Init_movewin_ext() {
86
89
 
87
90
  /* Define module MoveWin and its methods */
88
91
  MW_Module = rb_define_module("MoveWin");
89
- rb_define_singleton_method(MW_Module, "authorized?", MW_is_authorized, 0);
92
+ rb_define_singleton_method(MW_Module, "recording_authorized?",
93
+ MW_is_recording_authorized, 0);
94
+ rb_define_singleton_method(MW_Module, "accessibility_authorized?",
95
+ MW_is_accessibility_authorized, 0);
90
96
  rb_define_singleton_method(MW_Module, "display_size", MW_display_size, 0);
91
97
  rb_define_singleton_method(MW_Module, "windows", MW_windows, 0);
92
98
 
@@ -104,9 +110,14 @@ void Init_movewin_ext() {
104
110
  rb_define_method(MW_WindowClass, "to_s", MW_Window_to_string, 0);
105
111
  }
106
112
 
113
+ /* Return true if we are authorized to do screen recording */
114
+ VALUE MW_is_recording_authorized(VALUE module) {
115
+ return isAuthorizedForScreenRecording() ? Qtrue : Qfalse;
116
+ }
117
+
107
118
  /* Return true if we are authorized to use OS X accessibility APIs */
108
- VALUE MW_is_authorized(VALUE module) {
109
- return isAuthorized() ? Qtrue : Qfalse;
119
+ VALUE MW_is_accessibility_authorized(VALUE module) {
120
+ return isAuthorizedForAccessibility() ? Qtrue : Qfalse;
110
121
  }
111
122
 
112
123
  /* Return dimensions of current main display as an array of two integers */
@@ -2,7 +2,7 @@
2
2
  * winutils.c - utility functions for listing and moving windows
3
3
  * Andrew Ho (andrew@zeuscat.com)
4
4
  *
5
- * Copyright (c) 2014-2015, Andrew Ho.
5
+ * Copyright (c) 2014-2020, Andrew Ho.
6
6
  * All rights reserved.
7
7
  *
8
8
  * Redistribution and use in source and binary forms, with or without
@@ -186,8 +186,30 @@ CGSize CGWindowGetSize(CFDictionaryRef window) {
186
186
  return CGSizeMake(width, height);
187
187
  }
188
188
 
189
+ /* Return true if and only if we are authorized to do screen recording */
190
+ bool isAuthorizedForScreenRecording() {
191
+ if (MAC_OS_X_VERSION_MIN_REQUIRED < 101500) {
192
+ /* OS X prior to Catalina does not require separate permissions */
193
+ return 1;
194
+ } else {
195
+ CGDisplayStreamFrameAvailableHandler handler =
196
+ ^(CGDisplayStreamFrameStatus status,
197
+ uint64_t display_time,
198
+ IOSurfaceRef frame_surface,
199
+ CGDisplayStreamUpdateRef updateRef) { return; };
200
+ CGDisplayStreamRef stream =
201
+ CGDisplayStreamCreate(CGMainDisplayID(), 1, 1, 'BGRA', NULL, handler);
202
+ if (stream == NULL) {
203
+ return 0;
204
+ } else {
205
+ CFRelease(stream);
206
+ return 1;
207
+ }
208
+ }
209
+ }
210
+
189
211
  /* Return true if and only if we are authorized to call accessibility APIs */
190
- bool isAuthorized() {
212
+ bool isAuthorizedForAccessibility() {
191
213
  #if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
192
214
  return AXAPIEnabled() || AXIsProcessTrusted();
193
215
  #else
@@ -2,7 +2,7 @@
2
2
  * winutils.h - utility functions for listing and moving windows
3
3
  * Andrew Ho (andrew@zeuscat.com)
4
4
  *
5
- * Copyright (c) 2014, Andrew Ho.
5
+ * Copyright (c) 2014-2020, Andrew Ho.
6
6
  * All rights reserved.
7
7
  *
8
8
  * Redistribution and use in source and binary forms, with or without
@@ -63,8 +63,11 @@ char *windowTitle(char *appName, char *windowName);
63
63
  CGPoint CGWindowGetPosition(CFDictionaryRef window);
64
64
  CGSize CGWindowGetSize(CFDictionaryRef window);
65
65
 
66
+ /* Return true if and only if we are authorized to do screen recording */
67
+ bool isAuthorizedForScreenRecording();
68
+
66
69
  /* Return true if and only if we are authorized to call accessibility APIs */
67
- bool isAuthorized();
70
+ bool isAuthorizedForAccessibility();
68
71
 
69
72
  /* Given window dictionary from CGWindowList, return accessibility object */
70
73
  AXUIElementRef AXWindowFromCGWindow(CFDictionaryRef window);
@@ -2,7 +2,7 @@
2
2
  # movewin.rb - Ruby native code that augments movewin_ext Ruby extension
3
3
  # Andrew Ho (andrew@zeuscat.com)
4
4
  #
5
- # Copyright (c) 2014-2015, Andrew Ho.
5
+ # Copyright (c) 2014-2020, Andrew Ho.
6
6
  # All rights reserved.
7
7
  #
8
8
  # Redistribution and use in source and binary forms, with or without
@@ -36,7 +36,7 @@
36
36
  require 'movewin/movewin_ext'
37
37
 
38
38
  module MoveWin
39
- VERSION = '1.10'
39
+ VERSION = '1.11'
40
40
 
41
41
  # Individual accessors for display size components
42
42
  def self.display_width; MoveWin.display_size[0]; end
metadata CHANGED
@@ -1,57 +1,49 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: movewin
3
- version: !ruby/object:Gem::Version
4
- version: "1.10"
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.11'
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Andrew Ho
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2015-04-28 00:00:00 Z
11
+ date: 2020-07-03 00:00:00.000000000 Z
13
12
  dependencies: []
14
-
15
13
  description: List and move OS X windows from Ruby via the OS X accessibility APIs.
16
14
  email: andrew@zeuscat.com
17
15
  executables: []
18
-
19
- extensions:
16
+ extensions:
20
17
  - ext/movewin/extconf.rb
21
18
  extra_rdoc_files: []
22
-
23
- files:
24
- - lib/movewin.rb
19
+ files:
20
+ - ext/movewin/dispatch/empty.rb
21
+ - ext/movewin/extconf.rb
25
22
  - ext/movewin/movewin_ext.c
26
23
  - ext/movewin/winutils.c
27
24
  - ext/movewin/winutils.h
28
- - ext/movewin/dispatch/empty.rb
29
- - ext/movewin/extconf.rb
25
+ - lib/movewin.rb
30
26
  homepage: https://github.com/andrewgho/movewin-ruby
31
- licenses:
27
+ licenses:
32
28
  - BSD-3-Clause
33
29
  metadata: {}
34
-
35
30
  post_install_message:
36
31
  rdoc_options: []
37
-
38
- require_paths:
32
+ require_paths:
39
33
  - lib
40
- required_ruby_version: !ruby/object:Gem::Requirement
41
- requirements:
42
- - &id001
43
- - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
46
- required_rubygems_version: !ruby/object:Gem::Requirement
47
- requirements:
48
- - *id001
34
+ required_ruby_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ required_rubygems_version: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
49
44
  requirements: []
50
-
51
- rubyforge_project:
52
- rubygems_version: 2.0.15
45
+ rubygems_version: 3.0.3
53
46
  signing_key:
54
47
  specification_version: 4
55
48
  summary: List and move OS X windows from Ruby
56
49
  test_files: []
57
-